我试图为一个Node.js应用程序设置一个环境。但我每次都得到这个错误。
“NODE_ENV”不能被识别为内部或外部命令, 可操作的命令或批处理文件。
这意味着什么?我该如何解决这个问题?
我使用Windows,也尝试设置NODE_ENV=development,但运气不好。
我试图为一个Node.js应用程序设置一个环境。但我每次都得到这个错误。
“NODE_ENV”不能被识别为内部或外部命令, 可操作的命令或批处理文件。
这意味着什么?我该如何解决这个问题?
我使用Windows,也尝试设置NODE_ENV=development,但运气不好。
当前回答
你可以用这个
"scripts": {
"start:dev": "nodemon server.js",
"start:prod": "SET NODE_ENV=production & nodemon
server.js"
},
或者你可以安装这个
npm install -g win-node-env
并且你可以运行NODE_ENV而不需要SET
"start:prod": "NODE_ENV=production nodemon server.js"
其他回答
听起来你的错误来自于试图运行这样的程序(在Linux中可以工作)
NODE_ENV=development node foo.js
在Windows系统中是相同的
SET NODE_ENV=development
node foo.js
在同一个命令shell中运行。你提到set NODE_ENV不工作,但不清楚如何/何时执行它。
使用win-node-env,使用它只需在cmd或power shell或git bash下运行以下命令:
npm install -g win-node-env
在它之后,一切都像Linux。
对于windows 打开git bash并尝试
NODE_ENV=生产节点app.js
你可以使用这个语法(使用"cross-env") ->
cross-env NODE_ENV=prod node dist/main
这对我来说很管用,因为这很容易解决。我克隆了一个存储库,它是在WINDOWS中开发的,但我使用MACOS。
如果你使用的是windows,使用SET作为前缀:
"scripts": {
"dev": "SET NODE_ENV=development && nodemon index.js",
},
但是如果你使用的是MacOS,移除SET关键字并使用:
"scripts": {
"dev": "NODE_ENV=development && nodemon index.js",
},
简单地说
如果你使用的是windows,在运行脚本之前使用SET前缀,并从MacOS(可能也是LINUX)中删除SET,如上所示。