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

“NODE_ENV” is not recognized as an internal or external command, operable command or batch file

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

"NODE_ENV" is not recognized as an internal or external command,
operable command or batch file.

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

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


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

1
NODE_ENV=development node foo.js

Windows中的等效项是

1
2
SET NODE_ENV=development
node foo.js

在同一命令外壳中运行。您提到set NODE_ENV不起作用,但是不清楚如何/何时执行。


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

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

只需安装(全局),然后运行您的npm脚本命令,它将自动使它们工作。

1
npm install -g win-node-env


对于Windows,在命令之间也使用&。喜欢,

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


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

  • 使用win-node-env,要使用它,只需在cmdpower shellgit bash上的以下命令中运行:

    1
    npm install -g win-node-env

    之后,一切都像Linux。


    1
    set NODE_ENV=production & nodemon app/app.js

    将导致NODE_ENV在末尾包含一个空格:

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

    如此处评论中所述,请改用此命令:

    1
    NODE_ENV=production&& nodemon app/app.js


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

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

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

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

  • npm ERR!最初尝试运行脚本时。
  • 为Windows使用而修改的脚本可以运行,但不显示返回消息。
  • 将npm config更新为使用bash之后,脚本将运行并返回相应的消息。
  • Getting npm scripts to run as is in Windows


    1
    npm install -S cross-env

    为我工作


    对于那些使用Git Bash且npm run 有问题的人,

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

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

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


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

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

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

  • 运行npm install --save-dev cross-env

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

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


    那里的大多数答案对我没有帮助。

    帮助我的是NODE_ENV=production&& nodemon app/app.js

    注意空间。
    祝好运。


    对于窗户
    打开git bash并尝试

    NODE_ENV=production node app.js