今天运行一个 GitHub 上 clone 的一个项目,因为作者的 readme 写不详细,习惯性 npm install
后,npm start
,结果报错。
问题
错误:'NODE_ENV' 不是内部或外部命令,也不是可运行的程序或批处理文件。
仔细看了 package.json 配置:
"scripts": {
"start": "NODE_ENV=production node ./bin/www",
"dev": "NODE_ENV=development node ./bin/www",
"local": "NODE_ENV=localhost node ./bin/www"
}
解决方法
原来 node 中常用到环境变量 NODE_ENV
,作者针对开发和生产环境使用了不同的设置,然后在 npm
脚本中将其作为参数传递给命令。然而,不同的系统写法不一样。Linux 上这样写没错,然而 Windows 上会报错。有两种解决方法:
- 在 NODE_EN=xxx 前面添加
set
。如:
"scripts": {
"start": "set NODE_ENV=production && node ./bin/www",
"dev": "set NODE_ENV=development && node ./bin/www",
"local": "set NODE_ENV=localhost && node ./bin/www"
}
注意 :&&
不可少,不然无法启动本地服务
npm i -D cross-env
安装cross-env
,再在 NODE_ENV=xxx 前面添加cross-env
。如:
"scripts": {
"start": "cross-env NODE_ENV=production node ./bin/www",
"dev": "cross-env NODE_ENV=development node ./bin/www",
"local": "cross-env NODE_ENV=localhost node ./bin/www"
}
搞定,Happy code!?
评论 (0)