set NODE_ENV失效问题

package.json中定义了启动脚本:

set NODE_ENV=mock && node app.js

config.js文件中通过process.env.NODE_ENV的值,指向不同的服务:

let list = {};
list["test"] = "http:127.0.0.1:1234/";
list["mock"] = "http:127.0.0.1:1235/";

var environment = process.env.NODE_ENV;

console.log(environment);
console.log(list );
console.log(list ["mock"]);
console.log(list [environment]);

if(list [environment]){
    console.log(list [environment]);
}else{
    console.log("error");
}

执行命令后的结果:

mock
{ test: 'http://127.0.0.1:1234/',
  mock: 'http://127.0.0.1:1235/' }
http://127.0.0.1:1235/
undefined
error
最后将命令改成:
set NODE_ENV=mock&& node app.js

即&&前面不能有空格

执行命令后的结果为:

mock
{ test: 'http://127.0.0.1:1234/',
  mock: 'http://127.0.0.1:1235/' }
http://127.0.0.1:1235/
undefined
http://127.0.0.1:1235/

是期待的结果

为什么一开始的命令也获取到了NODE_ENV,但是输出却错误呢?

扩展:

也可以使用cross-env来设置环境变量,首先安装cross-env:

npm i cross-env --save-dev

通过cross-env添加启动命令:

cross-env NODE_ENV=mock node app.js
两个命令之间不能使用&&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值