User Tools

Site Tools


webpack

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
webpack [2021/08/20 14:31] chifekwebpack [2023/09/14 06:06] (current) – external edit 127.0.0.1
Line 3: Line 3:
 Официальный сайт webpack [[https://webpack.js.org]] Официальный сайт webpack [[https://webpack.js.org]]
  
 +Презентация Webpack
 +{{:webpack.pptx}}
  
-Webpack это сборщик модулей, который умеет сам анализировать модули и файлы, которые используются на проекте +{{:74de6adc11.jpg?600|}}
- +
-Используется для более сложных приложений.  +
  
 ===== Зачем нужен вебпак? ===== ===== Зачем нужен вебпак? =====
Line 70: Line 69:
   - Преобразования, которые необходимо выполнить   - Преобразования, которые необходимо выполнить
   - Место, в которое следует поместить сформированный бандл   - Место, в которое следует поместить сформированный бандл
 +
 +
 +===== Настройка =====
  
 ==== Точка входа ==== ==== Точка входа ====
Line 176: Line 178:
 </code> </code>
  
 +Обратите внимание, что поскольку для обработки CSS-файлов используется два лоадера, значением свойства use является массив. Также обратите внимание на порядок следования лоадеров, сначала style-loader, затем css-loader. Это важно. Вебпак будет применять их в обратном порядке. Сначала он использует css-loader для импорта './styles.css', затем style-loader для внедрения стилей в DOM. 
 +
 +Лоадеры могут использоваться не только для импорта файлов, но и для их преобразования. Самым популярным является преобразование JavaScript следующего поколения в современный JavaScript с помощью Babel. Для этого используется babel-loader. 
 +
 +<code>
 +npm i babel-loader -D 
 +</code>
 +
 +<code>
 +module.exports = {
 +  entry: './app/index.js',
 +  module: {
 +    rules: [
 +      { test: /\.svg$/, use: 'svg-inline-loader' },
 +      { test: /\.css$/, use: [ 'style-loader', 'css-loader' ] },
 +      { test: /\.(js)$/, use: 'babel-loader' }
 +    ]
 +  }
 +}
 +</code>
 +
 +Существуют лоадеры почти для любого типа файлов. 
 +
 +==== Точка выхода ====
 +
 +
 +Теперь вебпак знает о точке входа и лоадерах. Следующим шагом является указание директории для бандла. Для этого нужно добавить свойство output в настройки вебпака. 
 +
 +<code>
 +const path = require('path')
 +
 +module.exports = {
 +  entry: './app/index.js',
 +  module: {
 +    rules: [
 +      { test: /\.svg$/, use: 'svg-inline-loader' },
 +      { test: /\.css$/, use: [ 'style-loader', 'css-loader' ] },
 +      { test: /\.(js)$/, use: 'babel-loader' }
 +    ]
 +  },
 +  output: {
 +    path: path.resolve(__dirname, 'dist'),
 +    filename: 'index_bundle.js'
 +  }
 +}
 +</code>
 +Весь процесс выглядит примерно так: 
 +
 +  - Вебпак получает точку входа, находящуюся в ./app/index.js
 +  - Он анализирует операторы import / require и создает граф зависимостей
 +  - Вебпак начинает собирать бандл, преобразовывая код с помощью соответствующих лоадеров
 +  - Он собирает бандл и помещает его в dist/index_bundle.js
 +
 +
 +
 +===== Ссылки =====
 +
 +
 +Сылка на статью https://habr.com/ru/post/514838/
  
webpack.1629469886.txt.gz · Last modified: 2023/09/14 06:06 (external edit)