如何为webpack设置多个环境变量?

10
有人知道如何向webpack提供多个环境变量吗?我试图运行以下脚本但没有成功。
"cross-env NODE_ENV=production DTM_ENV=staging webpack --config internals/webpack.prod.babel.js --color -p --progress"

console.log(process.env) 中,它只显示 NODE_ENV: "production"


./node_modules/.bin/cross-env A=1 B=2 node -p process.env 对我来说运行正常。你使用的是什么操作系统?也许尝试将 webpack --config internals/webpack.prod.babel.js --color -p --progress 放在一个单独的 npm 脚本中。 - Michał Perłakowski
我尝试将其放入不同的npm脚本中,但结果相同。 - dtalaba
你是否拥有最新版本的 cross-env - Michał Perłakowski
我已经找到了解决方案,Webpack在构建后无法看到这些变量,可能是因为我使用了UglifyJS。因此,我们可以通过将这些环境变量暴露给Webpack来使用它们。 - dtalaba
1个回答

9

在构建完成后,Webpack无法访问环境变量,因此需要将这些变量暴露出来,方法是在Webpack配置中添加以下内容到plugins:

new webpack.DefinePlugin({
  'process.env': {
    NODE_ENV: JSON.stringify(process.env.NODE_ENV),
    DTM_ENV: JSON.stringify(process.env.DTM_ENV),
  }
})

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接