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

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

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

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


当前回答

修改脚本以适应Windows是一件非常痛苦的事情。试图找出合适的Windows翻译并维护两套脚本是不可能的。

在Windows上配置npm使用bash要容易得多,并且你的脚本将按原样运行。

只需运行npm config set script-shell "C:\\Program Files\\Git\\bin\\bash.exe"。确保bash可执行文件的路径对您的计算机是正确的。您可能需要启动终端的一个新实例,以便更改生效。

下面的截图说明了好处。

npm犯错!在最初尝试运行脚本时。 为Windows使用修改的脚本运行,但不显示返回消息。 在更新npm配置以使用bash之后,脚本运行并返回适当的消息。

其他回答

在“包”中设置脚本“test”。Json "文件:

例如:

在Windows中; “test”:“SET NODE_ENV=test & jest”,

在Linux / Mac; “test”:“NODE_ENV=test jest”,

NODE_ENV=development & node [your file name here]

or

SET NODE_ENV=development & node [your file name here]

set NODE_ENV=**production&** nodemon server.js &必须连接,因为如果在生产和&之间留出空间,那么 NODE_ENV将在最后包含空格,就像'production ' 所以只需删除production和&之间的空格,并在&之后添加空格

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

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

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