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

时间:2012-08-13 03:55:26

标签: windows node.js

我正在尝试为Node.js应用设置环境。但我每次都会收到这个错误。

  

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

这是什么意思,我该如何解决这个问题?

我正在使用Windows并尝试set NODE_ENV=development但没有运气。

18 个答案:

答案 0 :(得分:199)

听起来你的错误来自于尝试运行这样的东西(在Linux中有效)

NODE_ENV=development node foo.js

Windows中的等效项

SET NODE_ENV=development
node foo.js

在同一个命令shell中运行。你提到NODE_ENV设置不起作用,但不清楚你是如何/何时执行它的。

答案 1 :(得分:129)

for windows也在命令之间使用&。像,

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

答案 2 :(得分:59)

  1. npm install "cross-env"模块。
  2. 将代码修改为cross-env NODE_ENV=development node foo.js。 然后,您可以运行类似npm run build

答案 3 :(得分:22)

使用win-node-env,使用它只需在cmdpower shellgit bash或<{1}}上执行以下命令:

npm install -g win-node-env

之后,一切都像Linux一样。

答案 4 :(得分:18)

set NODE_ENV=production & nodemon app/app.js

会导致NODE_ENV在最后包含空格

process.env.NODE_ENV == 'production'; //false
process.env.NODE_ENV == 'production '; //true

如评论here中所述,请改用:

NODE_ENV=production&& nodemon app/app.js

答案 5 :(得分:9)

我在Windows平台上遇到了同样的问题,我只运行了以下命令

npm install -g win-node-env

一切正常

答案 6 :(得分:5)

这样做肯定会起作用

"scripts": {
    "start": "SET NODE_ENV=production && node server"
}

答案 7 :(得分:3)

npm install -S cross-env

为我工作

答案 8 :(得分:3)

对于Windows,您可以这样做

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

答案 9 :(得分:2)

在“package.json”文件中设置脚本“test”

例如:

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

在 Linux/Mac 中; "test": "NODE_ENV=test jest",

答案 10 :(得分:1)

对于那些使用Git Bash并遇到npm run <script>有问题的人,

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

npm config set script-shell "C:\\Program Files\\git\\bin\\bash.exe"(根据您的安装更改路径)

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

答案 11 :(得分:0)

这对我有用,因为它很容易修复。我克隆了一个在 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,如上所示。

答案 12 :(得分:0)

NODE_ENV=development & node [your file name here]

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

希望它能解决您的问题。编程快乐!

答案 13 :(得分:0)

process.env.NODE_ENV 正在添加空白

process.env.NODE_ENV.trim() == 'production'

答案 14 :(得分:0)

更改脚本以适应Windows是一种痛苦。试图找出合适的Windows翻译版本并维护2套脚本无法实现自己的生活。

将npm配置为在Windows上使用bash更加容易,并且脚本将按原样运行。

只需运行npm config set script-shell "C:\\Program Files\\Git\\bin\\bash.exe"。确保bash可执行文件的路径适用于您的计算机。

下面的屏幕快照说明了好处。

  1. npm ERR!最初尝试运行脚本时。
  2. 为Windows使用而修改的脚本可以运行,但不显示返回消息。
  3. 将npm config更新为使用bash之后,脚本将运行并返回相应的消息。

Getting npm scripts to run as is in Windows

答案 15 :(得分:0)

如果其他人像我一样来到这里,试图为错误找到解决方案:

'env' is not recognized as an internal or external command

我得到这个的原因是我将有角度的解决方案从Mac开发机迁移到Windows 10桌面。这就是我解决的方法。

  1. 运行npm install --save-dev cross-env

  2. 进入我的package.json文件,并将所有脚本引用从env <whatever>更改为cross-env <whatever>

然后我的命令:npm run start:some_random_environment_var现在可以在Windows 10上正常运行。

答案 16 :(得分:0)

对于Windows 打开git bash 并尝试

NODE_ENV=production node app.js

答案 17 :(得分:-2)

在 Windows 机器上 npm install -g win-node-env