NODE_ENV的问题

今天运行一个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上会报错。有两种解决方法:

1. 在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"
}

注意
&&不可少,不然无法启动本地服务

2. 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 🙂

发表评论

电子邮件地址不会被公开。 必填项已用*标注