看到别的地方判断process.env.NODE_ENV =development 这个process.env是什么?在哪儿设置的? 在window系统下是在命令行通过 SET NODE_ENV =development 可是用node的命令窗口输入process.env.NODE_ENV 是undefined 是什么原因?
process.env
是读取系统环境变量的,比如你在启动服务的时候,设置环境变量为production或者development,那么在程序里面就可以通过process.env.ENVNAME
获取,因为你在node命令窗口启动时没有设置相关的环境变量,所以就没办法获取到了,你可以试一下NODE_ENV=development node
来启动命令窗口,然后应该就可以获取到了!
windows 不太清楚,*NIX
系统下规则如下:
export NODE_ENV=production && node xxx.js
这样在当前命令行下后续的命令中读取 NODE_ENV
,都会得到 production 值;
如果直接使用 NODE_ENV=production node xxx.js
,则 NODE_ENV
的有效性仅限当前命令,不会对后续命令有影响。
@JiaxiangZheng 什么是当前命令,后续命令? 如果想取到,命令行窗口不能切换吧,只能在当前命令行窗口访问吧?
在代码里就可以设置啊
@eyblog 用控制台设置方便些
“dev-mac”: " export NODE_ENV=development&& nodemon --harmony --use_strict index.js -w ", “dev-win”: " set NODE_ENV=development&& nodemon --harmony --use_strict index.js -w ",
支持
虽然问题已经过了很久了,但还是想帮助还需要帮助的人—https://segmentfault.com/a/1190000005811347