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

问题描述:

我试图为node.js应用程序设置环境。但我得到“NODE_ENV”不被识别为内部或外部命令,可操作命令或批处理文件。每次都出错。“NODE_ENV”不被识别为内部或外部命令,可操作的命令或批处理文件

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

我正在使用Windows,并试图设置NODE_ENV=development,但没有运气。

帮助!提前致谢。

这听起来像你的错误来自尝试运行这样的事情(在Linux下正常工作)

NODE_ENV=development node foo.js 

在Windows相当于将

SET NODE_ENV=development 
node foo.js 

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

+0

感谢吉姆,我用它在命令行并从package.json文件中删除。但之后我又遇到了另一个人。看起来像节点模块并不完全支持Windows。 bcrypt和gyp有另一个错误。 – krozero 2012-08-13 22:54:47

+0

这里不是专家,但bcrypt显示对windows的支持,但确实需要openSSL,不确定是否有帮助。如果没有,可能会发布一个新的问题,因为情况已经发生了一些变化。 – 2012-08-14 03:41:17

+1

虽然这确实有效,但我认为@Sanan-stack给出了正确的答案 - 一个跨平台的解决方案,并且不会改变在Windows上工作的行但打破其他操作系统。 – justabuzz 2016-06-03 12:45:22

for windows use & in between command also。像,

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

&并没有为我工作。我用相反的; – Reda 2016-02-14 17:46:31

+1

这正是我瞧! – 2016-02-20 07:01:45

+1

非常感谢,非常有帮助。 – kobe 2016-07-05 00:19:41

  1. npm install "cross-env"模块。
  2. 修改代码为cross-env NODE_ENV=development node foo.js。 然后你可以运行如npm run build
+7

请不要忘记在'package.json'的依赖文件中包含'cross-env'。 – 2016-08-22 00:51:39

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

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

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

npm install -g win-node-env 
+2

它的工作原理!我不需要改变任何命令。这是答案。 – 2017-01-20 22:41:13

+0

这是最简单的方法 – mrTurkay 2017-05-03 21:28:21

+0

它为我工作。谢谢! – ArCiGo 2017-05-08 03:22:29

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 
+0

'NODE_ENV =“production”''怎么样? – TheFrost 2017-08-19 11:27:20

使用win-node-env ,对于使用它只是在你下面的命令运行[R cmdpower shellgit bash

npm install -g win-node-env 

之后就一切都像Linux操作系统。