Angular编译报错:Maximum call stack size exceeded 求解决方案
Angular构建报错:Maximum call stack size exceeded
报错信息
./src/main.ts - Error: Module build failed (from ./node_modules/@angular-devkit/build-angular/node_modules/@ngtools/webpack/src/ivy/index.js): Error: Maximum call stack size exceeded ./src/polyfills.ts - Error: Module build failed (from ./node_modules/@angular-devkit/build-angular/node_modules/@ngtools/webpack/src/ivy/index.js): Error: Maximum call stack size exceeded

解决方案
清理缓存与依赖
- 执行Angular清理命令:
ng clean - 删除
node_modules、package-lock.json(或yarn.lock)文件 - 重新安装依赖:
npm install(或yarn install) - 手动删除
.angular/cache目录,彻底清除构建缓存
- 执行Angular清理命令:
排查循环依赖
项目中模块或组件的循环引用是常见诱因,可通过工具检测:- 安装
madge:npm install -g madge - 扫描项目循环依赖:
madge --circular src/ - 找到循环引用后,重构代码——比如将公共逻辑抽离到独立模块,调整导入关系打破循环
- 安装
调整构建配置
- 临时禁用Ivy(仅作排查,不建议长期使用):在
angular.json的projects -> [你的项目名] -> architect -> build -> options中添加:"aot": false, "enableIvy": false - 增大Node.js堆栈内存:修改构建命令为
node --max-old-space-size=8192 node_modules/@angular/cli/bin/ng build
- 临时禁用Ivy(仅作排查,不建议长期使用):在
检查第三方依赖兼容性
确认项目依赖的第三方库与当前Angular版本匹配,尤其是自定义webpack插件或Angular特定库。更新到兼容版本,或替换存在兼容性问题的依赖
内容的提问来源于stack exchange,提问作者Naveen NK
相关产品推荐
相关产品推荐

