webpack
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| webpack [2021/08/20 14:30] – chifek | webpack [2023/09/14 06:06] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 3: | Line 3: | ||
| Официальный сайт webpack [[https:// | Официальный сайт webpack [[https:// | ||
| + | Презентация Webpack | ||
| + | {{: | ||
| - | Webpack это сборщик модулей, | + | {{: |
| - | + | ||
| - | Используется для более сложных приложений. | + | |
| ===== Зачем нужен вебпак? | ===== Зачем нужен вебпак? | ||
| Line 70: | Line 69: | ||
| - Преобразования, | - Преобразования, | ||
| - Место, в которое следует поместить сформированный бандл | - Место, в которое следует поместить сформированный бандл | ||
| + | |||
| + | |||
| + | ===== Настройка ===== | ||
| ==== Точка входа ==== | ==== Точка входа ==== | ||
| Line 135: | Line 137: | ||
| } | } | ||
| </ | </ | ||
| + | |||
| + | |||
| + | Теперь мы можем импортировать SVG-файлы. Но что насчет наших CSS-файлов? | ||
| + | |||
| + | < | ||
| + | npm i css-loader -D | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | module.exports = { | ||
| + | entry: ' | ||
| + | module: { | ||
| + | rules: [ | ||
| + | { test: /\.svg$/, use: ' | ||
| + | { test: /\.css$/, use: ' | ||
| + | ] | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | Теперь мы можем импортировать как SVG, так и CSS-файлы. Однако для того, чтобы наши стили работали корректно, | ||
| + | |||
| + | < | ||
| + | npm i style-loader -D | ||
| + | </ | ||
| + | |||
| + | |||
| + | < | ||
| + | module.exports = { | ||
| + | entry: ' | ||
| + | module: { | ||
| + | rules: [ | ||
| + | { test: /\.svg$/, use: ' | ||
| + | { test: /\.css$/, use: [ ' | ||
| + | ] | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Обратите внимание, | ||
| + | |||
| + | Лоадеры могут использоваться не только для импорта файлов, | ||
| + | |||
| + | < | ||
| + | npm i babel-loader -D | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | module.exports = { | ||
| + | entry: ' | ||
| + | module: { | ||
| + | rules: [ | ||
| + | { test: /\.svg$/, use: ' | ||
| + | { test: /\.css$/, use: [ ' | ||
| + | { test: /\.(js)$/, use: ' | ||
| + | ] | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Существуют лоадеры почти для любого типа файлов. | ||
| + | |||
| + | ==== Точка выхода ==== | ||
| + | |||
| + | |||
| + | Теперь вебпак знает о точке входа и лоадерах. Следующим шагом является указание директории для бандла. Для этого нужно добавить свойство output в настройки вебпака. | ||
| + | |||
| + | < | ||
| + | const path = require(' | ||
| + | |||
| + | module.exports = { | ||
| + | entry: ' | ||
| + | module: { | ||
| + | rules: [ | ||
| + | { test: /\.svg$/, use: ' | ||
| + | { test: /\.css$/, use: [ ' | ||
| + | { test: /\.(js)$/, use: ' | ||
| + | ] | ||
| + | }, | ||
| + | output: { | ||
| + | path: path.resolve(__dirname, | ||
| + | filename: ' | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | Весь процесс выглядит примерно так: | ||
| + | |||
| + | - Вебпак получает точку входа, находящуюся в ./ | ||
| + | - Он анализирует операторы import / require и создает граф зависимостей | ||
| + | - Вебпак начинает собирать бандл, преобразовывая код с помощью соответствующих лоадеров | ||
| + | - Он собирает бандл и помещает его в dist/ | ||
| + | |||
| + | |||
| + | |||
| + | ===== Ссылки ===== | ||
| + | |||
| + | |||
| + | Сылка на статью https:// | ||
webpack.1629469803.txt.gz · Last modified: 2023/09/14 06:06 (external edit)