Другие варианты
Это оставшиеся параметры конфигурации, поддерживаемые webpack.
amd
object boolean: false
Установите значение require.amd или define.amd. Установка amd в false отключит поддержку AMD в webpack.
webpack.config.js
module.exports = {
//...
amd: {
jQuery: true,
},
}; Некоторые популярные модули, написанные для AMD, особенно версии jQuery с 1.7.0 по 1.9.1, будут зарегистрированы как AMD-модули только в том случае, если загрузчик укажет, что он принял специальные условия для включения нескольких версий на странице.
Эти условия включали возможность ограничивать регистрации определённой версией или поддержку разных песочниц с различными определёнными модулями.
Этот параметр позволяет установить ключ, который ищет ваш модуль, в истинное значение. Как это ни парадоксально, поддержка AMD в webpack игнорирует заданное имя.
bail
boolean = false
Прекратить выполнение при первой ошибке вместо её игнорирования. По умолчанию webpack выводит эти ошибки красным в терминале и консоли браузера при использовании HMR, но продолжает сборку. Чтобы включить эту функцию:
webpack.config.js
module.exports = {
//...
bail: true,
}; Это заставит webpack завершить процесс сборки.
dependencies
[string]
Список name, определяющий все конфигурации-зависимые конфигурации. Зависимые конфигурации должны быть скомпилированы предварительно.
В режиме наблюдения зависимости будут вызывать обновление компилятора при:
- изменении зависимости;
- компиляции или недействительности зависимости.
Помните, что текущая конфигурация не будет скомпилирована, пока не завершат выполнение её зависимости.
webpack.config.js
module.exports = [
{
name: 'client',
target: 'web',
// …
},
{
name: 'server',
target: 'node',
dependencies: ['client'],
},
]; ignoreWarnings
[RegExp, function (WebpackError, Compilation) => boolean, {module?: RegExp, file?: RegExp, message?: RegExp}]
Указывает webpack игнорировать определённые предупреждения. Это можно сделать с помощью RegExp, настраиваемой function функции, выбирающей предупреждения на основе исходного объекта предупреждения, который получает WebpackError и Compilation в качестве аргументов и возвращает boolean, а object с следующими свойствами:
-
file: Регулярное выражение для выбора исходного файла предупреждения. -
message: Регулярное выражение для выбора сообщения предупреждения. -
module: Регулярное выражение для выбора исходного модуля предупреждения.
ignoreWarnings должно быть array из любого или всех вышеперечисленных.
module.exports = {
//...
ignoreWarnings: [
{
module: /module2\.js\?[34]/, // A RegExp
},
{
module: /[13]/,
message: /homepage/,
},
/warning from compiler/,
(warning) => true,
],
}; loader
object
Экспортировать пользовательские значения в контекст загрузчика.
Например, вы можете определить новую переменную в контексте загрузчика:
webpack.config.js
module.exports = {
// ...
loader: {
answer: 42,
},
}; Затем использовать this.answer для получения его значения в загрузчике:
custom-loader.js
module.exports = function (source) {
// ...
console.log(this.answer); // will log `42` here
return source;
}; name
string
Имя конфигурации. Используется при загрузке нескольких конфигураций.
webpack.config.js
module.exports = {
//...
name: 'admin-app',
}; parallelism
number = 100
Ограничить количество параллельно обрабатываемых модулей. Можно использовать для тонкой настройки производительности или получения более надёжных результатов профилирования.
profile
boolean
Получить "профиль" приложения, включая статистику и подсказки, которые затем можно анализировать с помощью инструмента Analyze. Также будет выведено резюме времен выполнения модулей.
recordsInputPath
string
Укажите файл, из которого нужно считать последний набор записей. Это может быть использовано для переименования файла записей. См. пример ниже.
recordsOutputPath
string
Укажите, куда следует записать записи. Следующий пример демонстрирует, как использовать этот параметр в сочетании с recordsInputPath для переименования файла записей:
webpack.config.js
const path = require('path');
module.exports = {
//...
recordsInputPath: path.join(__dirname, 'records.json'),
recordsOutputPath: path.join(__dirname, 'newRecords.json'),
}; recordsPath
string
Используйте этот параметр для генерации JSON-файла, содержащего "записи" webpack – фрагменты данных, используемые для хранения идентификаторов модулей при многократных сборках. Вы можете использовать этот файл для отслеживания изменений модулей между сборками. Для создания файла, укажите расположение:
webpack.config.js
const path = require('path');
module.exports = {
//...
recordsPath: path.join(__dirname, 'records.json'),
}; Записи особенно полезны при наличии сложной настройки, которая использует разделение кода. Данные могут быть использованы для обеспечения того, что разделенные пакеты достигают нужного кеширования.
snapshot
object
Параметры snapshot определяют, как создаются и делают недействительными снимки файловой системы.
webpack.config.js
const path = require('path');
module.exports = {
// ...
snapshot: {
managedPaths: [path.resolve(__dirname, '../node_modules')],
immutablePaths: [],
unmanagedPaths: [],
buildDependencies: {
hash: true,
timestamp: true,
},
module: {
timestamp: true,
},
resolve: {
timestamp: true,
},
resolveBuildDependencies: {
hash: true,
timestamp: true,
},
},
}; buildDependencies
object = { hash boolean = true, timestamp boolean = true }
Снимки для зависимостей сборки при использовании кэша постоянного хранения.
-
hash: Сравнивает хеши содержимого для определения недействительности (более дорогостоящий, чемtimestamp, но меняется реже). -
timestamp: Сравнивает временные метки для определения недействительности.
И hash, и timestamp являются необязательными.
-
{ hash: true }: Подходит для кэширования CI с новым выводом, который не сохраняет временные метки и использует хеши. -
{ timestamp: true }: Подходит для кэширования локального развития. -
{ timestamp: true, hash: true }: Подходит для обоих вышеупомянутых случаев. Сначала сравниваются временные метки, что является дешёвым, так как webpack не нуждается в чтении файлов для вычисления их хешей. Хеши содержимого будут сравниваться только при совпадении временных меток, что приводит к небольшому падению производительности для первоначальной сборки.
immutablePaths
(RegExp | string)[]
Массив путей, управляемых менеджером пакетов и содержащих версию или хеш в своих путях, так что все файлы неизменяемы.
Убедитесь, что путь заключён в группу захвата, если вы используете регулярные выражения.
managedPaths
(RegExp | string)[]
Массив путей, управляемых менеджером пакетов и которым можно доверять, что они не будут изменены.
Убедитесь, что вы заключаете путь в группу захвата, если используете регулярные выражения, чтобы webpack мог извлечь путь. Например, вот регулярное выражение, которое внутренне использует webpack для соответствия каталогу node_modules.
/^(.+?[\\/]node_modules)[\\/]/
Типичный случай использования managedPaths – исключение некоторых папок из node_modules, например, вы хотите, чтобы webpack знал, что файлы в папке node_modules/@azure/msal-browser ожидается изменятся, что можно сделать с помощью регулярного выражения, такого как приведённое ниже:
module.exports = {
snapshot: {
managedPaths: [
/^(.+?[\\/]node_modules[\\/](?!(@azure[\\/]msal-browser))(@.+?[\\/])?.+?)[\\/]/,
],
},
}; unmanagedPaths
5.90.0+(RegExp | string)[]
Массив путей, не управляемых менеджером пакетов, и содержимое которых может быть изменено.
Убедитесь, что путь заключён в группу захвата, если вы используете регулярные выражения.
module
object = {hash boolean = true, timestamp boolean = true}
Снимки для сборки модулей.
-
hash: Сравнивает хеши содержимого для определения недействительности (более дорогостоящий, чемtimestamp, но меняется реже). -
timestamp: Сравнивает временные метки для определения недействительности.
resolve
object = {hash boolean = true, timestamp boolean = true}
Снимки для разрешения запросов.
-
hash: Сравнивает хеши содержимого для определения недействительности (более дорогостоящий, чемtimestamp, но меняется реже). -
timestamp: Сравнивает временные метки для определения недействительности.
resolveBuildDependencies
object = {hash boolean = true, timestamp boolean = true}
Снимки для разрешения зависимостей сборки при использовании кэша постоянного хранения.
-
hash: Сравнивает хеши содержимого для определения недействительности (более дорогостоящий, чемtimestamp, но меняется реже). -
timestamp: Сравнивает временные метки для определения недействительности.
© JS Foundation and other contributors
Licensed under the Creative Commons Attribution License 4.0.
https://webpack.js.org/configuration/other-options