Angular构建报错:Maximum call stack size exceeded问题咨询
Angular构建时“Maximum call stack size exceeded”错误的解决方法
错误信息
./src/main.ts - Error: Module build failed (from ./node_modules/@ngtools/webpack/src/ivy/index.js):
Error: Maximum call stack size exceeded
解决步骤
清理项目缓存与依赖
执行以下命令彻底清理缓存和依赖,重新安装:ng cache clean rm -rf node_modules package-lock.json yarn.lock npm installWindows系统替换为:
ng cache clean rmdir /s /q node_modules del package-lock.json yarn.lock npm install排查循环引用
栈溢出最常见的原因是模块/组件间的循环引用,比如A模块导入B模块,B模块又反向导入A模块。检查AppModule的imports、declarations中涉及的所有组件、模块,逐一排查导入关系是否存在闭环。增大Node.js内存分配
在package.json的scripts中修改build命令,增加Node栈大小参数:"scripts": { "build": "node --max-old-space-size=8192 ./node_modules/@angular/cli/bin/ng build" }该方法通过提升Node的内存上限缓解栈溢出,但无法解决循环引用等根源问题,仅作为临时方案。
临时禁用Ivy编译器
若怀疑是Ivy兼容性问题,可在tsconfig.json中禁用Ivy:"angularCompilerOptions": { "enableIvy": false }注意:Angular 13及以上版本默认启用Ivy,禁用后可能无法使用部分新特性,仅用于排查问题。
检查第三方依赖
排查近期新增的第三方库,尝试更新到最新版本,或临时移除该依赖后重新构建,确认是否是第三方库导致的循环引用或兼容性问题。
内容的提问来源于stack exchange,提问作者Enes Yilmaz
相关产品推荐
相关产品推荐

