Точка входа и контекст
Объект точки входа — это место, откуда 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