“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不起作用,但不清楚你是如何/何时执行它的。
答
-
npm install "cross-env"
模块。 - 修改代码为
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
答
使用win-node-env ,对于使用它只是在你下面的命令运行[R cmd
或power shell
或git bash
:
npm install -g win-node-env
之后就一切都像Linux操作系统。
感谢吉姆,我用它在命令行并从package.json文件中删除。但之后我又遇到了另一个人。看起来像节点模块并不完全支持Windows。 bcrypt和gyp有另一个错误。 – krozero 2012-08-13 22:54:47
这里不是专家,但bcrypt显示对windows的支持,但确实需要openSSL,不确定是否有帮助。如果没有,可能会发布一个新的问题,因为情况已经发生了一些变化。 – 2012-08-14 03:41:17
虽然这确实有效,但我认为@Sanan-stack给出了正确的答案 - 一个跨平台的解决方案,并且不会改变在Windows上工作的行但打破其他操作系统。 – justabuzz 2016-06-03 12:45:22