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?)上使用你的脚本。