我试图为一个Node.js应用程序设置一个环境。但我每次都得到这个错误。

“NODE_ENV”不能被识别为内部或外部命令, 可操作的命令或批处理文件。

这意味着什么?我该如何解决这个问题?

我使用Windows,也尝试设置NODE_ENV=development,但运气不好。


当前回答

NPM install——save-dev "cross-env"模块。 将代码修改为cross-env NODE_ENV=development node foo.js。 然后你可以运行npm run build。

其他回答

对于那些使用Git Bash并在npm运行<脚本>时遇到问题的人,

只需设置npm使用Git Bash运行脚本

“C:\\Program Files\\git\\bin\\bash.exe”(根据安装情况更改路径)

然后npm将使用Git Bash运行脚本,因此像NODE_ENV=这样的用法将正常工作。

如果您正在使用Powershell作为终端,请尝试使用Git-Bash。

NODE_ENV=development node foo.js

我为此写了一个模块:win-node-env。

它创建了一个NODE_ENV。cmd命令,设置NODE_ENV环境变量,并使用该命令的其余部分及其参数生成一个子进程。

只需安装它(全局),并运行你的npm脚本命令,它应该会自动使它们工作。

npm install -g win-node-env

对于Windows使用&在命令之间也。就像,

  "scripts": {
    "start": "SET NODE_ENV=development & nodemon app/app.js",
  }

这对我来说很管用,因为这很容易解决。我克隆了一个存储库,它是在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,如上所示。