我正在尝试为Node.js应用设置环境。但我每次都会收到这个错误。
“NODE_ENV”未被识别为内部或外部命令, 可操作命令或批处理文件。
这是什么意思,我该如何解决这个问题?
我正在使用Windows并尝试set NODE_ENV=development
但没有运气。
答案 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)
npm install "cross-env"
模块。cross-env NODE_ENV=development node foo.js
。
然后,您可以运行类似npm run build
。答案 3 :(得分:22)
使用win-node-env,使用它只需在cmd
或power shell
或git 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可执行文件的路径适用于您的计算机。
下面的屏幕快照说明了好处。
答案 15 :(得分:0)
如果其他人像我一样来到这里,试图为错误找到解决方案:
'env' is not recognized as an internal or external command
我得到这个的原因是我将有角度的解决方案从Mac开发机迁移到Windows 10桌面。这就是我解决的方法。
运行npm install --save-dev cross-env
进入我的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