NODE_ENV不被识别为内部或外部命令

我正在开发node.js,并要考虑生产和开发环境。 我发现在运行node.js服务器时设置NODE_ENV来完成这项工作。 但是,当我尝试在package.json脚本中设置它,它给了我错误:

NODE_ENV不被识别为内部或外部命令

下面是我的package.json

{ "name": "NODEAPT", "version": "0.0.0", "private": true, "scripts": { "start": "NODE_ENV=development node ./bin/server", "qa2": "NODE_ENV=qa2 node ./bin/server", "prod": "NODE_ENV=production node ./bin/server" }, "dependencies": { "body-parser": "~1.15.1", "cookie-parser": "~1.4.3", "debug": "~2.2.0", "express": "~4.13.4", "fs": "0.0.1-security", "jade": "~1.11.0", "morgan": "~1.7.0", "oracledb": "^1.11.0", "path": "^0.12.7", "serve-favicon": "~2.3.0" } } 

我运行我的节点服务器,例如: npm run qa2

我不知道我做错了什么。 任何帮助表示赞赏

由于您使用的是windows operating system. 该命令与您正在使用的unix系统命令不同。

在Windows中,你必须修改脚本为。

 "scripts": { "start": " SET NODE_ENV=development & node ./bin/server", "qa2": "SET NODE_ENV=qa2 & node ./bin/server", "prod": "SET NODE_ENV=production & node ./bin/server" }, 

使用SET ,然后在&之后。

然而,推荐使用cross-env平台的稳定性。

npm install -S cross-env一样安装它

 "scripts": { "start": " cross-env NODE_ENV=development & node ./bin/server", "qa2": "cross-env NODE_ENV=qa2 & node ./bin/server", "prod": "cross-env NODE_ENV=production & node ./bin/server" }, 

我可以build议跨平台的溶剂。 这是在cross-env npm包的帮助下完成的。 你的脚本部分看起来像这样:

 "scripts": { "globals" : "npm i -g cross-env", "start": "cross-env NODE_ENV=development & node ./bin/server", "qa2": "cross-env NODE_ENV=qa2 & node ./bin/server", "prod": "cross-env NODE_ENV=production & node ./bin/server" } 

所以你只运行一次:

 npm run globals // to install global dependencies 

那么你可以自由地在Linux和Windows(Mac?)上使用你的脚本。