set NODE_ENV失效问题

原创 2018年04月16日 14:56:33

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
两个命令之间不能使用&&

彻底掌握 Javascript(十六)Set 数据结构【专家辅导】

-
  • 1970年01月01日 08:00

NODE_ENV跨平台设置

NODE_ENV跨平台设置 set NODE_ENV问题 最近接手系统中采用React作为管理端,其中有这样一句 "build": "node ./tools/gulpfile.js&&...
  • repoem
  • repoem
  • 2018-01-19 13:49:58
  • 76

关于windows不支持NODE_ENV=development的问题

问题描述:最近从github上面clone了一个项目后,进行cnpm install 后,进行cnpm run start 启动后,出现如下错误: 日志如下:0 info it worked if i...
  • abcwangruili
  • abcwangruili
  • 2017-08-19 14:04:25
  • 1478

Webpack2 完整踩坑教程(四)

**Webpack的核心哲学思想** 1.一切都是模块——就像JS文件可以视作“模块”一样,其他所有的一切(CSS,图片,HTML)都可以被视作模块,通过require加载。。 2.模块加载器会把...
  • alanfancy
  • alanfancy
  • 2017-03-21 18:19:32
  • 2227

如何在Windows7 设置node的环境变量NODE_ENV=production

在app中设置了一个生产环境 app.configure('production', function () { var expireTime = 2592000000; app.use...
  • mxy1234
  • mxy1234
  • 2016-06-01 19:08:14
  • 2643

Webpack使用

1.什么是Webpack? WebPack可以看做是模块打包机:它做的事情是,分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,TypeScrip...
  • qq_38054239
  • qq_38054239
  • 2017-12-19 15:59:52
  • 45

node.js express 运行环境 NODE_ENV

Express支持多工作环境,比如生产环境 和开发环境 等。开发者可以使用configure() 方法根据当前环境的需要进行设置,当configure() 没有传入环境名称时,它会在各环境之前被调用(...
  • clh604
  • clh604
  • 2013-01-10 19:06:15
  • 15150

使用cross-env解决跨平台设置NODE_ENV的问题

在搭建公司新的前端工程的架构中,需要在在package.json的scripts标签下配置一系列命令,如下所示: "scripts": { "clear": "rm -rf build&& ...
  • z69183787
  • z69183787
  • 2017-01-06 15:49:03
  • 8611

【npm】npm-npm install官方文档说明

npm install (in package directory, no arguments): 在包文件夹里面,没有参数; Install the dependencies in the lo...
  • River_Continent
  • River_Continent
  • 2017-06-08 10:20:44
  • 358

Windows如何设置NODE_ENV

参考链接:链接貌似第一的高票答案在本地不生效,使用setx NODE_ENV prod生效
  • u014291497
  • u014291497
  • 2017-09-17 23:02:02
  • 391
收藏助手
不良信息举报
您举报文章:set NODE_ENV失效问题
举报原因:
原因补充:

(最多只允许输入30个字)