vue代碼打包內存溢出 FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory


我的環境: win10環境 node.js版本 12+ 內存16G
今天系統升級時通過運行npm run build:prod命令(或npm run build)打包時一直報錯:
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
因為我是從后台剛轉到前端,雖然知道是內存溢出要把內存配置改大點,從網上搜的答案還是踩坑了:

  • 刪除 C:\Users{賬戶}\下的.npmrc文件 我刪了,沒看出有啥變化,依然報錯(重啟了,清緩存了)

  • 全局安裝 increase-memory-limit插件
    這個安裝上以后運行打包命令直接報錯了,報錯信息為
    '"node --max-old-space-size=4096"'不是內部或外部命令,也不是可運行的程序
    這里不是內存設置太大,而是因為win10系統命令行中不能正確識別雙引號"",因此還要把這個插件包中涉及到的腳本中雙引號都去掉,即修改node_modules下的.bin文件中的所有.cmd文件,將里面的"%_prog%" 去掉雙引號 改成 %_prog%
    項目中依賴的模塊那么多,就算可以批量替換,但代碼改動越多,風險越大,想想太麻煩了,所以再想想辦法吧!

  • 修改package.json文件中build命令處
    "build": "node --max_old_space_size=4096 build/build.js"
    我的項目使用vue-cli搭建的,不是引用上述build/build.js這種寫法,而是下面寫法:
    "build:prod": "vue-cli-service build"

最終針對我的有效方案,上面那行代碼改為:
"build:prod": "node --max_old_space_size=4096 node_modules/@vue/cli-service/bin/vue-cli-service.js build"

改完之后運行 npm run build打包沒問題了,但是npm run serve 報了'"node --max-old-space-size=4096"'不是內部或外部命令,也不是可運行的程序,要不就用vscode將項目下所有.cmd文件里面的"%_prog%"雙引號去掉,要不就將package.json里面的serve命令也改成build命令里面的格式

"serve": "node --max_old_space_size=4096 node_modules/@vue/cli-service/bin/vue-cli-service.js serve --open",


免責聲明!

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



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