早午餐将NODE_ENV或环境变量暴露给javascript

时间:2017-05-03 20:04:04

标签: javascript node.js build environment-variables brunch

我正在编写一个执行早午餐构建的npm脚本。我想传递一个环境变量,以便应用程序知道默认情况下为此构建使用哪组URL(URL的集合将在用户请求时从UI更改)。这是我到目前为止的npm脚本设置(我在Windows上):

"scripts": {
  "build:localhost": "SET NODE_ENV=localhost && brunch build",
  "build:develop": "SET NODE_ENV=develop && brunch build",
  "build:production": "SET NODE_ENV=production && brunch build"
}

如果我在我的brunch-config.js中npm run build:localhostconsole.log(process.env.NODE_ENV);,我会按照我的预期得到localhost。但是我编译的一个javascript文件中的console.log(process.env.NODE_ENV);返回development。这不是我所期望的 - 我希望它是localhost

如何将我设置的NODE_ENV变量传递给我的javascript代码?更一般地说,我如何从早午餐提供我的javascript代码的变量? --env命令的brunch标志似乎只是关于早午餐配置的overrides块中使用的设置。

更新

我能够使用jsenv-brunch执行此操作,感谢来自@migore的this suggestion,但我想知道NODE_ENV是否应该按我默认描述的方式运行,以及为什么如果是的话。

0 个答案:

没有答案