【发布时间】:2017-06-04 23:39:08
【问题描述】:
我已经检查了大量关于“webpack 中的环境变量”的 SO 问题,例如使用定义插件:
new webpack.DefinePlugin({'ENV': JSON.stringify('staging')})
但我无法找到一种方法来注入在 linux bash shell 中定义的环境变量,而不是使用硬编码的staging 字符串
在我的生产和暂存环境中,我定义了诸如 $ENV 和 $API_KEY 之类的变量,我想在我的 webpack / ReactJs 代码中使用它们的值。
编辑
我注意到,如果我从 cli 运行 webpack 命令:
$ ENVIRONMENT=staging
$ node_modules/.bin/webpack -p
并且在我的 webpack.config.js 文件中定义了
new webpack.DefinePlugin({'ENV': JSON.stringify(process.env.ENVIRONMENT)})
这不起作用(ENV 在我的 JS 代码中未定义),
但是,如果我在同一行上运行它,它似乎可以工作 - 环境似乎在 webpack.config.js 文件中可用:
$ ENVIRONMENT=staging node_modules/.bin/webpack -p
所以我真的很想完成这项工作,而不必在与 webpack 命令相同的行上定义 ENVIRONMENT 变量。
【问题讨论】:
-
使用
process.env.$ENV?