blog icon indicating copy to clipboard operation
blog copied to clipboard

跨平台设置NODE_ENV问题探究

Open yangchch6 opened this issue 6 years ago • 0 comments

关于windows不支持NODE_ENV=development的问题

场景:windows环境下,安装webpack-dev-server后,项目中执行npm run dev报错:

$ npm run dev

> [email protected] dev D:\ycc\Yonyou\course\webpack-course
> NODE_ENV=development webpack-dev-server --open --env.mode=development

'NODE_ENV' ▒▒▒▒▒ڲ▒▒▒▒ⲿ▒▒▒Ҳ▒▒▒ǿ▒▒▒▒еij▒▒▒
▒▒▒▒▒▒▒▒▒ļ▒▒▒
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] dev: `NODE_ENV=development webpack-dev-server --op         en --env.mode=development`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] dev script.
npm ERR! This is probably not a problem with npm. There is likely additional log         ging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     D:\tools\nvm\v8.11.3\node_cache\_logs\2018-09-11T08_26_50_585Z-debu         g.log

探究原因:

查看node版本为v7.0.0,以为是node版本过低导致的,结果更新至最新版本后还是不行,在网上查了资料,把package.json里面设置的

"dev": "NODE_ENV=development webpack-dev-server --open --env.mode=development"

改为

"dev": "webpack-dev-server --open --env.mode=development"

查明原因:修改以上配置后项目就可以成功启动了,原因是windows不支持NODE_ENV=development造成的

解决方案:

  • 使用cross-env解决跨平台设置环境变量NODE_ENV的问题
  1. 通过cnpm install -s cross-env安装cross-env包
  2. 修改package.json的脚本命令,如下所示
"dev": "cross-env NODE_ENV=development webpack-dev-server"
  1. 重新启动项目就可以了

yangchch6 avatar Jan 10 '19 12:01 yangchch6