Javascript 如何在命令中设置process.env变量并在网页包文件中检索

Javascript 如何在命令中设置process.env变量并在网页包文件中检索,javascript,node.js,reactjs,webpack,process,Javascript,Node.js,Reactjs,Webpack,Process,下面是命令- "analyze": "node scripts/analyze.js" 我试图在其中设置一个process.env变量,如- "analyze": "node scripts/analyze.js BUNDLE_ANALYZE=true" 在我的webpack.config.js文件中,我编写了如下条件- if(process.env.BUNDLE_ANALYZE) { // DO a Bundle analyzer push to the main plugin arr

下面是命令-

"analyze": "node scripts/analyze.js"
我试图在其中设置一个
process.env
变量,如-

"analyze": "node scripts/analyze.js BUNDLE_ANALYZE=true"
在我的
webpack.config.js
文件中,我编写了如下条件-

if(process.env.BUNDLE_ANALYZE) {
  // DO a Bundle analyzer push to the main plugin array
}

但是它不起作用,让我知道我在这里做错了什么。

变量声明应该在节点之前:

"analyze": "BUNDLE_ANALYZE=true node scripts/analyze.js"
请记住,“true”将以字符串的形式出现

您还可以使用标志:

node scripts/analyze.js --analyse
然后在您的网页包配置中:

plugins: [
  process.argv.includes('--analyse')
    ? new (require('webpack-bundle-analyzer')).BundleAnalyzerPlugin()
    : null,
].filter(Boolean),

我认为应该是
process.argv.includes('analysis')
而不是
process.argv.includes('--analysis')
。如果我错了,请纠正我如果您用
node scripts/analysis.js--analysis启动脚本,这个
process.argv.includes('--analysis')
工作,但遗憾的是这个
process.argv.includes('analysis'))
不会。如果你不想要
--
你可以这样做
!!process.argv.find(x=>/analysis/.test(x))