DevGang
Авторизоваться

Четыре основных концепции webpack 

webpack - известный сборщик статических модулей. Сборщики модулей используются для объединения модулей Javascript в один файл, который затем может быть выполнен браузером. Они помогают управлять зависимостями в вашем коде и загружать ресурсы в соответствии с порядком зависимостей.

Есть четыре основных понятия в WebPack: entry, output, modules и plug-ins.

Эти конфигурации добавляются в webpack.config.js.

1. entry

entry и output связаны друг с другом.

webpack.config.js
module.exports = {
  entry: './path/to/my/entry/file.js',
};

Приведенный выше фрагмент является примером конфигурации entry. По сути, вы сообщаете webpack самый первый файл, который ему нужно просмотреть, когда он начинает создавать граф зависимостей. Граф зависимостей начинается с этого файла, а затем строит его зависимости и зависимости своих зависимостей и так далее. webpack проходит через все эти зависимости и создает модули, а затем повторяет весь этот процесс во всем приложении.

2. output

Конфигурация output говорит WebPack, как и где он должен положить бандл и в каком формате. Например output, указав значение ниже, вы указываете webpack поместить пакеты в файл javascript с именем my-first-webpack.bundle.js, в папку dist в том же каталоге, где находится webpack.config.js.

webpack.config.js
const path = require('path');

module.exports = {
  entry: './path/to/my/entry/file.js',
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: 'my-first-webpack.bundle.js',
  },
};

3. rules и loaders

Конфигурации rules и loaders, говорит webpack как он должен обрабатывать различные типы файлов и конвертировать их в действительные модули, прежде чем они будут добавлены в графе зависимостей.

loaders обычно имеют два свойства, а именно:

  1. test. Свойство test сообщает тип файла, который будет обрабатываться.
  2. use. Свойство use сообщает webpack, какой загрузчик будет использоваться при обработке файла.

Например, при построении из ранее написанной конфигурации свойство modules ниже сообщает webpack об этом:

«Привет, компилятор webpack, когда вы встретите путь, который заканчивается на .css внутри оператора require()/import, используйте css-loader, чтобы преобразовать его, прежде чем добавлять его в пакет».
webpack.config.js
const path = require('path');
const ExamplePlugin = require('ExamplePlugin.js')

module.exports = {
  entry: './path/to/my/entry/file.js',
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: 'my-first-webpack.bundle.js',
  },
  module: {
    rules: [
        { 
          test: /\.css$/, 
          use: 'css-loader' 
        }
    ],
  },
  plugins: [
     new ExamplePlugin()
  ]
};

4. plugins

Плагины позволяют выполнять любые функции. В то время как загрузчики используются для преобразования определенных типов модулей, плагины могут использоваться для выполнения более широкого круга задач, таких как оптимизация пакетов, управление активами, внедрение переменных среды, минимизация файлов и т.д. Например, приведенный ниже пример плагина распечатает сообщение "Hello I am learning" каждый раз, когда вы запускаете webpack. Webpack уже имеет богатую коллекцию плагинов, поэтому разработчики также могут проверить их, прежде чем изобретать велосипед.

class ExamplePlugin {
   apply(compiler) {
      compiler.plugin("run", (compiler, callback) {
         console.log("Hello I am learning");
         callback();
      });
   }
}

Я все еще нахожусь в процессе изучения webpack, но считаю, что простое понимание этих концепций поможет уверенно создавать конфигурации webpack, соответствующие потребностям разработчика.

Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

Поделитесь своим опытом, расскажите о новом инструменте, библиотеке или фреймворке. Для этого не обязательно становится постоянным автором.

Попробовать

В подарок 100$ на счет при регистрации

Получить