前端項目較大,編譯(npm run serve)或者打包(npm run build)時,服務突然停止,報內存溢出錯誤(stderr maxBuffer exceeded)
原因:在前端項目非常龐大時,webpack編譯會占用很多系統資源,如果超出了V8引擎對node默認的內存限制大小時,就會產生內存溢出的錯誤。
解決方案:放大node內存
方案一:使用increase-memory-limit插件
方案二:修改package.json的node命令,--max-old-space-size=6000
方案三:修改環境變量
前兩種方案網上已有很多帖子給了詳細介紹,這里只介紹第三種方案
這里介紹MAC電腦上修改環境變量的方案 (命令的輸入須英文模式)
1. 選擇終端,打開命令行工具
2. 輸入:echo $PATH,按回車執行命令查看當前變量值
3. 輸入:sudo vi ~/.bash_profile,按回車,輸入電腦密碼后,將打開bash_profile文件,
(沒有此文件的話,系統會新建此文件,且內容為空白文檔)
4. 鍵盤按 i 開始編輯,輸入 export NODE_OPTIONS=--max_old_space_size=6000
5. 編輯完成,按 esc 退出編輯模式
6. 輸入 :wq 保存退出, :q! 不保存退出
7. 輸入 source ~/.bash_profile (修改系統環境變量,須source一下,才能生效)
參考鏈接:
https://jingyan.baidu.com/article/8065f87f47b29523312498e4.html
https://jingyan.baidu.com/article/d2b1d1029c1ea65c7e37d4c9.html