使用cross-env解決跨平臺設置NODE_ENV的問題

更多文章,請在 Github blog查看

問題

在搭建公司新的前端工程的架構中,須要在在package.jsonscripts標籤下配置一系列命令,以下所示:前端

"scripts": {
    "clear": "rm -rf build&& mkdir build",
    "start": "npm run clear&& NODE_ENV=development webpack-dev-server --host 0.0.0.0 --devtool eval --progress --color --profile",
    "deploy": "npm run pre&& npm run clear&& NODE_ENV=production webpack -p --progress"
  },

上面配置中的的&&最開始使用的是;,後來發現;在windows環境中沒法正常運行,因而改爲了*unix和windows都兼容的&&。可是公司的部分使用windows的同事在運行npm start的時候,依然會報錯:node

'NODE_ENV' 不是內部或外部命令,也不是可運行的程序
或批處理文件。

npm ERR! Windows_NT 6.1.7601
npm ERR! argv "D:\\nodejs\\node.exe" "D:\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "start"
npm ERR! node v4.0.0-rc.5
npm ERR! npm  v2.14.2
npm ERR! code ELIFECYCLE
npm ERR! yy-ydh-web@1.0.7 start: `npm run clear&& NODE_ENV=development && webpack-dev-server --host 0.0.0.0 --devtool ev
al --progress --color --profile`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the yy-ydh-web@1.0.7 start script 'npm run clear&& NODE_ENV=development && webpack-dev-server --host
0.0.0.0 --devtool eval --progress --color --profile'.
npm ERR! This is most likely a problem with the yy-ydh-web package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     npm run clear&& NODE_ENV=development && webpack-dev-server --host 0.0.0.0 --devtool eval --progress --color
 --profile
npm ERR! You can get their info via:
npm ERR!     npm owner ls yy-ydh-web
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     D:\workspace\node_modules\yy-ydh-web\npm-debug.log

簡單來講,就是windows不支持NODE_ENV=development的設置方式。webpack

可是,又不想放棄這樣簡單方便的方式,因而只好求助於Google了。git

解決方式

功夫不負有心人,在萬能的google上,我找到了解決方法:cross-env
這個迷你的包可以提供一個設置環境變量的scripts,讓你可以以unix方式設置環境變量,而後在windows上也能兼容運行。github

使用方法:

  • 安裝cross-env:npm install cross-env --save-dev
  • NODE_ENV=xxxxxxx前面添加cross-env就能夠了。

趕忙試試吧!web

相關文章
相關標籤/搜索