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

kro*_*ero 173 windows node.js

我正在尝试为set NODE_ENV=development应用设置环境.但我得到"NODE_ENV"不被识别为内部或外部命令,可操作命令或批处理文件.每次都错误.

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

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

救命!提前致谢.

Jim*_*eil 236

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

NODE_ENV=development node foo.js
Run Code Online (Sandbox Code Playgroud)

Windows中的等价物

SET NODE_ENV=development
node foo.js
Run Code Online (Sandbox Code Playgroud)

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

  • 虽然这确实有效,但我认为@ Susan-stack给出了正确的答案 - 一个跨平台的解决方案,并没有改变在Windows上工作的线路,但打破了其他操作系统. (4认同)

lag*_*lex 176

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

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

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

npm install -g win-node-env
Run Code Online (Sandbox Code Playgroud)

  • 有用!而且我没有必要改变任何命令.这就是答案. (8认同)
  • 这是最简单的答案 (7认同)
  • 没有为我工作。我得到: > NODE_ENV=development node_modules/.bin/nodemon --ignore ./public/tones/ --exec babel-node server/index.js 'node_modules' 不被识别为内部或外部命令,可运行的程序或批处理文件。 (2认同)

小智 143

用于Windows &之间的命令也.喜欢,

  "scripts": {
    "start": "SET NODE_ENV=development & nodemon app/app.js",
  }
Run Code Online (Sandbox Code Playgroud)

  • 该命令有效,但是`NODE_ENV`的值将是'development'('t'和'&'之间的空格将包含在`NODE_ENV`中) (6认同)
  • 这对我不起作用.我改用了; (2认同)

小智 75

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

  • 请不要忘记在`package.json`中包含`cross-env`到依赖项 (9认同)
  • 这可能应该是公认的答案。这是一个与平台无关的解决方案 (4认同)
  • 跨环境 最佳答案! (2认同)
  • 该库位于:https://github.com/kentcdodds/cross-env - 该页面表示要在 devDependency 中包含 cross-dev ```npm install --save-dev cross-env```;当 npm 脚本说 ```env VARNAME=varvalue && ...``` 时,这也有助于解决错误 ```'env' is not recognize as an inside or external command``` (只需删除 env 并插入交叉-env 代替)。开发人员无需全局安装某些东西或为不同平台使用不同的 npm 脚本! (2认同)

Ame*_*icA 30

使用win-node-env,使用它只需在你的cmdor power shell或or 上执行命令git bash!

npm install -g win-node-env
Run Code Online (Sandbox Code Playgroud)

一切都像Linux一样.


Roh*_*oel 30

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

npm install -g win-node-env
Run Code Online (Sandbox Code Playgroud)

一切正常

  • 非常有用,我们跨多个平台(Mac 和 Windows)进行开发的项目需要这个。 (2认同)

Fli*_*ion 24

set NODE_ENV=production & nodemon app/app.js
Run Code Online (Sandbox Code Playgroud)

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

process.env.NODE_ENV == 'production'; //false
process.env.NODE_ENV == 'production '; //true
Run Code Online (Sandbox Code Playgroud)

正如这里的评论所述,请改用:

NODE_ENV=production&& nodemon app/app.js
Run Code Online (Sandbox Code Playgroud)


小智 13

对于那些使用 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=会正常工作。


Ish*_*ani 9

这对我有用,因为它很容易修复。我克隆了一个在 WINDOWS 中开发的存储库,但我使用的是 MACOS。

如果您使用的是 Windows,请使用 SET 作为前缀:

"scripts": {
    "dev": "SET NODE_ENV=development && nodemon index.js",
  },
Run Code Online (Sandbox Code Playgroud)

但如果您使用的是 MacOS,请删除 SET 关键字并使用:

"scripts": {
    "dev": "NODE_ENV=development && nodemon index.js",
  },
Run Code Online (Sandbox Code Playgroud)

简而言之

如果您使用的是 Windows,请在运行脚本之前使用SET前缀,并从 MacOS(也可能是 LINUX)中删除 SET,如上所示。


小智 8

你可以用这个

"scripts": {
   "start:dev": "nodemon server.js",
   "start:prod": "SET NODE_ENV=production & nodemon 
   server.js"
},
Run Code Online (Sandbox Code Playgroud)

或者你可以安装这个

 npm install -g win-node-env
Run Code Online (Sandbox Code Playgroud)

并且您可以在不使用 SET 的情况下运行 NODE_ENV

 "start:prod": "NODE_ENV=production nodemon server.js"
Run Code Online (Sandbox Code Playgroud)


小智 7

这样做它肯定会奏效

"scripts": {
    "start": "SET NODE_ENV=production && node server"
}
Run Code Online (Sandbox Code Playgroud)


小智 7

NODE_ENV=development & node [your file name here]
Run Code Online (Sandbox Code Playgroud)

或者

SET NODE_ENV=development & node [your file name here]
Run Code Online (Sandbox Code Playgroud)


Ëuc*_*ÿ'C 6

如果您使用“Yarn Packager”,则可以通过以下命令解决此问题:

yarn global add win-node-env
Run Code Online (Sandbox Code Playgroud)


Jon*_*ell 5

更改脚本以适应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之后,脚本将运行并返回相应的消息。

使npm脚本在Windows中按原样运行

  • 是的!正是我所需要的!无论如何,谁想要“npm install -g more-cr*p”? (2认同)