необязательное использование BundleAnalyzerPlugin в сборке веб-пакета
Я использую webpack для проекта React и хотел бы включить WebpackBundleAnalyzer, но только если он явно указан в сценарии npm (например,). По умолчанию я не хочу, чтобы он запускался.
Мой сценарий сборки в package.json прост:
"build": "webpack --mode production",
Как и соответствующие фрагменты из моего webpack.config.js:
...
const withReport = process.env.npm_config_withReport || 'false';
...
plugins: [
...
withReport ? new BundleAnalyzerPlugin() : '',
],
...
Моя мысль в том, что
withReport
будет ложным, если я не укажу иное (например,
npm run build --withReport true
), поэтому BundleAnalyzer не будет выполняться, если я оставлю это выключенным (
npm run build
).
Вместо этого анализатор запускается, даже если я не укажу
--withReport
. Что мне не хватает?
1 ответ
Я исправил это, внеся пару изменений в свой webpack.config.js.
Сначала я изменил способ объявления withReport. Затем я изменил способ создания экземпляра BundleAnalyzerPlugin, чтобы вместо этого использовать concat после других плагинов:
...
const withReport = process.env.npm_config_withReport ? true : false;
...
plugins: [
...
].concat(withReport ? [new BundleAnalyzerPlugin()] : []),
...