可选使用 BundleAnalyzerPlugin 的 webpack 配置

webpack config with optional usage of BundleAnalyzerPlugin

我正在将 webpack 用于 React 项目,并希望包含 WebpackBundleAnalyzer,但 只有 在 npm 脚本中明确指定时(例如,npm run build --withReport true).默认情况下,我不希望它 运行.

我在 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,分析器也会执行。我错过了什么?

我通过对 webpack.config.js.

进行了一些更改来解决此问题

首先我改变了声明方式withReport。然后我改变了实例化 BundleAnalyzerPlugin 的方式,改为在其他插件之后使用 concat

...
const withReport = process.env.npm_config_withReport ? true : false;
...
plugins: [
  ...
].concat(withReport ? [new BundleAnalyzerPlugin()] : []),
...