необязательное использование 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()] : []),
...
Другие вопросы по тегам