问题描述
项目使用webpacker打包js代码,当引入文件或者依赖很多的情况下,出现JavaScript heap out of memory的报错信息
产生原因
经过问题排查,找到根源是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' 即可