Answers:
听起来您的错误来自尝试运行类似这样的东西(在Linux中有效)
NODE_ENV=development node foo.js
Windows中的等效项是
SET NODE_ENV=development
node foo.js
在同一命令外壳中运行。您提到了NODE_ENV集不起作用,但是不清楚如何/何时执行。
我为此编写了一个模块:win-node-env。
它创建一个NODE_ENV.cmd
设置NODE_ENV
环境变量,并使用其余命令及其arg生成一个子进程。
只需安装(全局),然后运行您的npm脚本命令,它将自动使它们工作。
npm install -g win-node-env
对于Windows &
,在命令之间也要使用。喜欢,
"scripts": {
"start": "SET NODE_ENV=development & nodemon app/app.js",
}
NODE_ENV
将为'development'('t'和'&'之间的空白将包含在中NODE_ENV
)
.trim()
稍后再进行有价值的process.env.NODE_ENV == 'production'
工作。无论如何要避免这种情况?
"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
。然后就可以运行like了npm run build
。cross-env
将依赖项包括在内package.json
npm install --save-dev cross-env
;这也有助于解决'env' is not recognized as an internal or external command
npm脚本所说的错误env VARNAME=varvalue && ...
(只需删除env并插入cross-env即可)。开发人员无需在全球范围内安装某些东西,也无需为不同平台使用不同的npm脚本!
set NODE_ENV=production & nodemon app/app.js
将导致NODE_ENV 在末尾包含一个空格:
process.env.NODE_ENV == 'production'; //false
process.env.NODE_ENV == 'production '; //true
作为在评论中提到这里,用这个来代替:
NODE_ENV=production&& nodemon app/app.js
NODE_ENV="production"
呢
&
和双打有什么区别&&
?两者似乎都对我有用。
更改脚本以适应Windows是一种痛苦。试图找出合适的Windows翻译版本并维护2套脚本是无法实现的。
将npm配置为在Windows上使用bash更加容易,并且脚本将按原样运行。
简单地运行npm config set script-shell "C:\\Program Files\\Git\\bin\\bash.exe"
。确保bash可执行文件的路径对于您的机器是正确的。您可能需要启动终端的新实例,以使更改生效。
下面的屏幕快照说明了好处。
对于Windows,请 打开git bash并尝试
NODE_ENV=production node app.js
npm <scripts_entry>
,我得到一个错误,其措辞不同但含义相同:它将env var name视为可执行文件。
npm run <script>
使用Windows cmd作为默认命令来运行。您可以将其设置为使用Git Bash。npm config set script-shell "C:\\Program Files\\git\\bin\\bash.exe"
然后npm run
将使用Git Bash运行脚本。
如果有人像我一样来到这里,试图为错误找到解决方案:
'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上运行良好。
process.env.NODE_ENV正在添加空格以执行此操作
process.env.NODE_ENV.trim() == 'production'