我正在尝试为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不起作用,但是不清楚如何/何时执行。
-
谢谢吉姆,我在命令行中使用了它,并将其从package.json文件中删除。但是之后我又遇到了另一个Windows似乎不完全支持节点模块。在使用bcrypt和gyp时遇到了另一个错误。
-
不是这里的专家,但是bcrypt显示了对Windows的支持,但确实需要openSSL,不确定是否有帮助。如果不是这样,由于方案已稍作更改,可能想发布一个新问题。
-
虽然这确实可行,但我认为@ Susan-stack提供了正确的答案-跨平台解决方案,并且不更改行以在Windows上运行,但破坏了其他操作系统。
-
支持Susans的答案-原始响应早于cross-env模块
-
奇迹般有效!多谢兄弟..
-
这个对我有用。谢谢
我为此编写了一个模块:win-node-env。
它创建一个NODE_ENV.cmd,该NODE_ENV.cmd设置NODE_ENV环境变量,并使用命令的其余部分及其args生成一个子进程。
只需安装(全局),然后运行您的npm脚本命令,它将自动使它们工作。
1
| npm install -g win-node-env |
-
有用!而且我不必更改任何命令。这就是答案。
-
这是最简单的方法
-
它为我工作。谢谢!
-
如何为您的脚本添加自定义变量?
-
@ ivan-ivory第一个变量(即NODE_ENV)必须保持不变(否则它必须是一个完全独立的脚本)。至于在其后添加自定义变量(即NODE_ENV = dev SOME_VAR = val),我必须修改脚本的逻辑以解析来自process.argv的更多变量。我一直在想,但没有时间。随时提出请求。
-
奇迹般有效!
-
这次真是万分感谢。
-
没有为我工作。我正在得到:> NODE_ENV = development node_modules / .bin / nodemon --ignore ./public/tones/ --exec babel-node服务器/index.js node_modules无法识别为内部或外部命令,可操作程序或批处理文件。
-
@RodrigoGarcia仅尝试NODE_ENV=development nodemon --ignore .publictones --exec babel-node serverindex.js(执行任何npm脚本时," node_modules / .bin"会自动添加到路径中)
-
@ ivan-ivory Ive刚刚添加了对自定义变量的支持(只要它们在第一个变量之后,如前所述),以及一些更常用的变量(如ENV,DEBUG,PORT),并为将来轻松添加更多内容铺平了道路。请检查最新版本。
-
有用 !!谢谢你的这个模块,伙计
-
这应该是公认的答案。如此简单且有效。非常感谢!
-
谢谢你这作品laggingreflex
-
超级容易!谢谢工作
-
不是所有的英雄穿着斗篷
对于Windows,在命令之间也使用&。喜欢,
1 2 3
| "scripts": {
"start":"SET NODE_ENV=development & nodemon app/app.js",
} |
-
该&没有为我工作。我用代替;
-
那正是我要寻找的!
-
非常感谢您,它非常有帮助。
-
和我一起工作。谢谢
-
单&或双&&都可以在Windows上使用。
-
该命令有效,但NODE_ENV的值将为展开(t和&之间的空白将由NODE_ENV包含)
-
正是@ roroinpho21所说的。现在我必须稍后再.trim()值才能使process.env.NODE_ENV == production工作。无论如何要避免这种情况?
-
Single&没为我工作,但&&赢了10
-
像魅力一样工作。谢啦。
-
最佳答案。低估
-
不能使它起作用的人,"test-unit":"SET NODE_ENV=test & mocha --require co-mocha test.js"错误"test-unit":"SET NODE_ENV=test & mocha --require co-mocha test.js"是。您需要删除js文件周围的 。
npm install"cross-env"模块。
将代码修改为cross-env NODE_ENV=development node foo.js。
然后,您可以运行类似npm run build的代码。
-
请不要忘记在package.json的依赖项中包含cross-env
-
cross-env正在为我工??作。
-
跨环境的最佳答案!
使用win-node-env,要使用它,只需在cmd或power shell或git bash上的以下命令中运行:
1
| npm install -g win-node-env |
之后,一切都像Linux。
-
我更喜欢这种方法,因为它避免了必须修改代码以使其在Windows上运行的情况
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 |
-
NODE_ENV="production"呢?
-
你尝试过@TheFrost吗?
-
我不记得了,但是请不要留下未解决的问题:我看到我赞成Susan-stack给出的答案。我真的很抱歉。
-
我在webpack配置中添加了trim():`插件:[new webpack.DefinePlugin({" process.env":{NODE_ENV:JSON.stringify(process.env.NODE_ENV.trim())}}))},),
-
单个&和双&&之间有什么区别?两者似乎都为我工作。
更改脚本以适应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之后,脚本将运行并返回相应的消息。
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上正常运行。
-
对于Windows用户,仅切换到Bash有点笨拙,尤其是在其余功能正常的情况下。 这是对我有用的好解决方案。
那里的大多数答案对我没有帮助。
帮助我的是NODE_ENV=production&& nodemon app/app.js
注意空间。
祝好运。
对于窗户
打开git bash并尝试
NODE_ENV=production node app.js
-
直接使用时,它确实可以在Git Bash(mintty)中工作。但是,当我从npm 运行相同的命令时,出现了一个措辞不同但含义相同的错误:它将env var name视为可执行文件。
-
@ AndreyMikhaylov-lolmaus npm run 使用Windows cmd作为默认命令来运行。 您可以将其设置为使用Git Bash。 npm config set script-shell"C:\\Program Files\\git\\bin\\bash.exe"然后npm run将使用Git Bash运行脚本。