Angular Nx项目集成Kendo UI时构建/启动服务出现JavaScript堆内存溢出问题求助
大家好,我在开发一个基于Angular Nx的项目,里面用到了Kendo UI for Angular组件。最近不管是启动开发服务还是执行构建流程,总是遇到JavaScript堆内存溢出的错误,实在找不到彻底解决的办法,想请大家帮忙分析一下。
错误信息
直接抛出的错误提示:
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
日志片段(已精简):
<--- Last few GCs --->
[70028:0000020B89251D50] 447688 ms: Mark-sweep ...
...
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
我已经尝试过的解决方法
调整Node.js内存上限:
我试过在NODE_OPTIONS里设置--max-old-space-size=4096(甚至调到更大的值),也直接用命令行指定内存启动项目:node --max-old-space-size=8192 ./node_modules/.bin/nx serve cms这方法能临时缓解内存压力,但有时候还是会触发溢出错误。
清理无用依赖和资源:
我删掉了项目里没用的第三方包和冗余资源,但只要项目中引入Kendo组件,构建或启动时的内存占用就会大幅上升,问题依然存在。配置懒加载:
我已经确保所有体积较大的功能模块都采用了懒加载的方式,但这也没能彻底消除内存溢出的问题。升级框架和工具版本:
我更新了Nx和Angular的版本到最新稳定版,不过这个问题还是没有得到解决。
错误截图
截图显示了Node.js终端抛出的完整错误信息,核心内容和我上面贴的错误提示、日志片段一致,明确是堆内存不足导致的启动/构建失败。
备注:内容来源于stack exchange,提问作者dinesh selvam

