可选使用 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()] : []),
...
我正在将 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()] : []),
...