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


在搭建公司新的前端工程的架構中,需要在在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_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的設置方式。

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

解決方式

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

使用方法:

  • 安裝across-env:npm install cross-env --save-dev

  • NODE_ENV=xxxxxxx前面添加cross-env就可以了。

set NODE_ENV=development && webpack --config webpack.config.dev.js

也可以實現一樣的效果

轉:https://blog.csdn.net/z69183787/article/details/54138818


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM