首页 > 解决方案 > 如何在命令中设置 process.env 变量并在 webpack 文件中检索

问题描述

以下是命令 -

"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
}

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

标签: javascriptnode.jsreactjswebpackprocess

解决方案


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

"analyze": "BUNDLE_ANALYZE=true node scripts/analyze.js"

请记住,“true”将作为字符串出现。

您还可以使用标志:

node scripts/analyze.js --analyse

然后在你的 webpack 配置中:

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

推荐阅读