問題描述
項目使用webpacker打包js代碼,當引入文件或者依賴很多的情況下,出現JavaScript heap out of memory的報錯信息
image.png
產生原因
經過問題排查,找到根源是Node V8引擎對內存有限制。在Node中使用內存,只能使用到系統的一部分內存,64位系統下約為1.4GB,32位系統下約為0.7GB。
解決思路
V8提供了選項以使用更多的內存。Node 在啟動時可以傳遞 --max-old-space-size 或 --max-new-space-size 來調整內存大小的使用限制。遇到 Node 無法分配足夠內存給 JavaScript 的情況,可以用這個辦法來放寬V8默認的內存限制,避免在執行過程中稍微多用了一些內存就輕易崩潰
解決辦法
配置package.json 文件scripts相應命令的配置,添加 NODE_OPTIONS='--max-old-space-size=4096' 即可