Spec-Zone.ru › webpack 4

Точка входа и контекст

Объект точки входа — это место, откуда webpack начинает сборку пакета. Контекст — это абсолютный путь к каталогу, содержащему файлы точки входа.

context

string

Базовый каталог, являющийся абсолютным путем, для разрешения точек входа и загрузчиков из конфигурации.

module.exports = {
  //...
  context: path.resolve(__dirname, 'app')
};

По умолчанию используется текущий каталог, но рекомендуется передавать значение в вашей конфигурации. Это делает вашу конфигурацию независимой от текущего рабочего каталога (CWD).

entry

string [string] object = { <key> string | [string] } (function() => string | [string] | object = { <key> string | [string] })

Точка или точки, с которых начинается процесс сборки приложения. Если передаётся массив, то все элементы будут обработаны.

Динамически загружаемый модуль не является точкой входа.

Простое правило: одна точка входа на одну страницу HTML. SPA: одна точка входа, MPA: несколько точек входа.

module.exports = {
  //...
  entry: {
    home: './home.js',
    about: './about.js',
    contact: './contact.js'
  }
};

Именование

Если передаётся строка или массив строк, имя чанка формируется как main. Если передаётся объект, каждый ключ — это имя чанка, а значение описывает точку входа для чанка.

Динамическая точка входа

Если передаётся функция, она будет вызвана при каждом событии make.

Обратите внимание, что событие make срабатывает при запуске webpack и при каждой проверке при отслеживании изменений файлов.

module.exports = {
  //...
  entry: () => './demo'
};

или

module.exports = {
  //...
  entry: () => new Promise((resolve) => resolve(['./demo', './demo2']))
};

Например: вы можете использовать динамические точки входа, чтобы получить фактические точки входа из внешнего источника (удаленный сервер, содержимое файловой системы или база данных):

webpack.config.js

module.exports = {
  entry() {
    return fetchPathsFromSomeExternalSource(); // returns a promise that will be resolved with something like ['src/main-layout.js', 'src/admin-layout.js']
  }
};

При комбинировании с опцией output.library: Если передаётся массив, экспортируется только последний элемент.

© JS Foundation and other contributors
Licensed under the Creative Commons Attribution License 4.0.
https://v4.webpack.js.org/configuration/entry-context

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API