1. 程式人生 > >webpack打包---報錯記憶體溢位javaScript heap out of memory

webpack打包---報錯記憶體溢位javaScript heap out of memory

今天, npm run build打包時,又報記憶體溢位了。所以記錄一下,之前查了部落格有一些解釋。

“報錯CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory是 JavaScript堆記憶體不足,這裡說的 JavaScript 其實就是 Node,我們都知道 Node 是基於V8引擎,在一般的後端開發語言中,在基本的記憶體使用上沒有什麼限制。

但是我去查閱了相關的資料才發現,在 Node 中通過 JavaScript 使用記憶體時只能使用部分記憶體(64位系統下約為1.4 GB,32位系統下約為0.7 GB),這就是我們編譯專案時為什麼會出現記憶體洩露了。

因為前端專案如果非常的龐大,webpack 編譯時就會佔用很多的系統資源,如果超出了V8對 Node 預設的記憶體限制大小就會出現剛剛我截圖的那個錯誤了,那怎麼解決呢?

V8依然提供了選項讓我們使用更多的記憶體。Node 在啟動時可以傳遞 --max-old-space-size 或 --max-new-space-size 來調整記憶體大小的使用限制。

如果遇到 Node 無法分配足夠記憶體給 JavaScript 的情況,可以用這個辦法來放寬V8預設的記憶體限制,避免在執行過程中稍微多用了一些記憶體就輕易崩潰”

針對我自己的專案,解決方法如下圖

1.在目錄node_modules/.bin下;

2.分別開啟ng.cmd和ngc.cmd檔案,新增  --max_old_space_size=32768,就OK了