Yarn build fatal error: ineffective mark-compacts near heap limit allocation failed – javascript heap out of memory
筆記碰到 yarn build 時遇到 javascript heap out of memory 的處理方式。透過 terminal 調高 Node 記憶體使用上限處理。
最近在使用 Nuxt3 開發專案,在 yarn build
時碰到了標題奇怪的問題,大概意思就是 build 的時候記憶體不夠用啦,所以沒法 build 完成。
一開始專案還小時,並沒有這些詭異的問題,頂多就是本地開發行為跟 build 之後東西會壞掉之類的。不過發生這樣的行為大約是在修改 nuxt.config.ts
內的
build: {
transpile: []
}
加入套件之後開始發生的。
不負責任猜測應該是在 build 時,處理太多套件導致記憶體不足。
解決方法
如果網路上查,應該會看到有個解法就是叫你安裝最近的 Node 版本,因為 Node 10 預設最多使用 512 MB 記憶體。而我的開發環境為 14 所以代表升級版本沒有改善記憶體管理。
增加記憶體使用上限
export NODE_OPTIONS="--max-old-space-size=4096" # 數字為 4GB 可自行視設備調整
# or
set NODE_OPTIONS=--max_old_space_size=4096
直接開啟 terminal 敲指令即可。
參考資料
https://itsmycode.com/fatal-error-ineffective-mark-compacts-near-heap-limit-allocation-failed-javascript-heap-out-of-memory/
https://nuxtjs.org/docs/configuration-glossary/configuration-build/