我正在编写一个执行早午餐构建的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:localhost
和console.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是否应该按我默认描述的方式运行,以及为什么如果是的话。