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

执行ng build时出现Call retries were exceeded异常求助

解决Angular ng build 时出现的「Call retries were exceeded」异常

我之前帮不少Angular开发者处理过这个构建报错,结合你给出的环境(Angular-CLI: 8.3.20、Angular: 8.2.7、Node: 12.12.1),下面是几个经过验证的有效解决方案,你可以逐一尝试:

  • 增加Node.js内存分配
    这个报错大概率是构建过程中Node内存不足导致的。你可以在执行构建命令时手动指定更大的内存限制:

    node --max_old_space_size=8192 ./node_modules/@angular/cli/bin/ng build --prod
    

    这里设置的是8GB内存,如果还是报错,可以尝试调到10240(10GB),根据你的机器配置调整即可。

  • 调整Angular CLI构建配置
    打开项目根目录的angular.json文件,找到architect -> build -> options节点,添加或修改以下配置,减少并发任务数来降低资源占用:

    "builder": "@angular-devkit/build-angular:browser",
    "options": {
      // 保留你已有的其他配置
      "maxWorkers": 2,
      "progress": false
    }
    

    maxWorkers的数值可以根据你的CPU核心数调整,比如4核机器设为2或3就很合适;关闭progress也能减少一些不必要的资源消耗。

  • 清理缓存并重新安装依赖
    缓存文件损坏也可能触发这类异常,执行以下命令彻底清理缓存和依赖:

    # 清理Angular构建缓存
    ng cache clean --all
    # 删除node_modules和锁文件,重新安装依赖
    rm -rf node_modules package-lock.json
    npm install
    

    如果是Windows系统,把rm -rf替换成rd /s /q即可。

  • 检查并调整依赖版本
    Angular 8和Node 12本身是兼容的,但个别第三方依赖可能存在版本冲突:

    • 可以把Angular CLI升级到8.x的最新稳定版:npm install @angular/cli@8.3.29 --save-dev(这是8.x分支的最后一个版本,修复了不少构建问题)
    • 排查项目中的第三方库,比如老版本的UI组件,确保它们适配Angular 8,必要时更新到对应兼容版本。
  • 临时禁用差异加载做测试
    既然你是为了生成ES5包开启差异加载,可以先临时关闭它,验证是否是差异加载环节出了问题:
    在angular.json的build -> options里添加:

    "target": "es5"
    

    这样会强制只生成ES5包,如果构建成功,再针对性排查差异加载相关的配置或依赖问题。

如果以上方案都没解决,你可以尝试把Node版本降级到12.x的早期稳定版(比如12.18.4),或者谨慎升级到Node 14.x(Angular 8对Node 14的兼容性需要测试,建议先备份项目)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 09:02:20