【问题标题】:How to set a process.env variable in command and retreive in webpack file如何在命令中设置 process.env 变量并在 webpack 文件中检索
【发布时间】:2019-06-07 05:30:42
【问题描述】:

下面是命令-

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

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

【问题讨论】:

    标签: javascript node.js reactjs webpack process


    【解决方案1】:

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

    "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),
    

    【讨论】:

    • 我认为应该是process.argv.includes('analyse') 而不是process.argv.includes('--analyse')..如果我错了请纠正我
    • 如果您以node scripts/analyze.js --analyse 开始您的脚本,则此process.argv.includes('--analyse') 有效,但遗憾的是此process.argv.includes('analyse') 不会。如果你不想要--,你可以这样做!!process.argv.find(x => /analyse/.test(x))
    猜你喜欢
    • 1970-01-01
    • 2019-04-18
    • 1970-01-01
    • 2018-01-01
    • 2012-07-22
    • 2021-12-25
    • 2019-04-08
    • 1970-01-01
    • 2013-07-07
    相关资源
    最近更新 更多