You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行Nrwl Ng Generate命令时出现Maximum call stack size exceeded错误

解决Nrwl ng generate命令触发「Maximum call stack size exceeded」错误的方案

我之前帮团队排查过好几起Nx生成库时触发调用栈溢出的问题,分享几个经过验证的解决方案:

  • 清理缓存与重建依赖
    这是最常见的触发原因之一,Nx的缓存或损坏的依赖可能导致递归调用逻辑出错。执行以下步骤:

    1. 删除本地依赖文件:rm -rf node_modules package-lock.json(使用Yarn的话换成rm -rf node_modules yarn.lock)
    2. 重新安装依赖:npm install 或 yarn install
    3. 重置Nx缓存:npx nx reset,这个命令会彻底清理Nx的所有缓存和临时文件
  • 检查版本兼容性
    Nx、Angular CLI和@nrwl/schematics版本不匹配很容易引发这类底层递归bug:

    1. 用npx nx report查看当前项目的所有核心依赖版本
    2. 确认这些版本符合Nx官方的版本兼容矩阵(可直接在Nx文档中查找对应Angular版本的推荐Nx版本)
    3. 如果版本不兼容,执行npx nx migrate latest升级到最新的兼容版本,或者降级到匹配的稳定版本
  • 简化命令参数,逐步排查
    复杂的参数组合可能触发schematics的隐藏bug,先简化命令再逐步添加参数:

    1. 先执行最基础的生成命令:ng generate @nrwl/schematics:library feature-restaurant-profile --no-interactive
    2. 如果成功,再逐步添加--parentModule、--routing、--lazy等参数,定位到触发问题的具体参数
    3. 同时检查--parentModule的路径是否完全正确,路径错误可能导致schematics在解析模块时陷入循环
  • 排查项目循环依赖
    项目中已存在的循环依赖会让schematics的模块解析逻辑陷入无限递归:

    1. 用npx nx dep-graph生成项目依赖图,可视化检查是否存在循环依赖的模块
    2. 修复找到的循环依赖(比如提取共享模块、调整导入路径),再重新执行生成命令
  • 更新Schematics到最新版本
    旧版本的@nrwl/schematics可能存在已知的递归调用bug,执行以下命令更新:

    ng update @angular/cli @nrwl/workspace
    

    更新完成后重启终端,再尝试生成命令

  • 手动创建库并配置(终极方案)
    如果以上方法都无效,可以绕过自动生成逻辑,手动完成配置:

    1. 执行npx nx g library feature-restaurant-profile创建基础库
    2. 手动在apps/web-kmeal-restaurant/src/app/app.module.ts中配置懒加载路由和模块引用
    3. 手动添加路由模块到库中,完成--routing和--lazy的预期效果

内容的提问来源于stack exchange,提问作者Bhaskar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:52:13