虽然我设置了环境变量

时间:2018-02-12 14:12:25

标签: javascript node.js

我正在使用webstorm,我尝试使用

设置环境变量
set NODE_ENV=development

当我使用

检查for环境变量时
echo%NODE_ENV%

我得到了发展作为答案。

但在我的节点应用程序中,当我使用

检查变量时
 var b= process.env.NODE_ENV;

我得到了

b:undefined

我甚至尝试在package.json文件中使用以下内容

"start": "set  node ./bin/www && NODE_ENV=production "

我仍然未定义。我不知道这里的问题是什么。

4 个答案:

答案 0 :(得分:3)

您应首先设置变量,然后运行脚本:

"start": "set NODE_ENV=production&& node ./bin/www"

请注意,这仅适用于Windows。如果您需要跨平台解决方案,请使用cross-env包:

cross-env NODE_ENV=production node ./bin/www

答案 1 :(得分:0)

使用导出

"start": "export NODE_ENV=production && node ./bin/www"

答案 2 :(得分:0)

以下是对我有用的,因为我的目标是尝试将包依赖性保持在我真正需要的位置:

"startwin": "SET NODE_ENV=production& SET SOME_TOKEN=123abc& node ./bin/www",
"start": "NODE_ENV=production SOME_TOKEN=123abc node ./bin/www" 

缺点是每次需要另一个环境变量时,我有2个地方可以编辑,但这几乎没有任何努力(至少在我的情况下,你的可能会有所不同)。

答案 3 :(得分:0)

如果您需要单独的config.js,请确保它是第一个。你可能有竞争条件。

我昨天碰到了这样的事情。它可能是您的问题,也可能不是。当我运行我的代码时,我的环境变量未定义。我将整个库移动到一个单独的模块中。我需要那个模块。我的问题是我的要求出了问题,所以当它问到时,它还没有确定。我移动了我的config.js需要高于我的库包需要。