在构建过程中,超过了调用重试的异常

ng build(为差异加载生成 ES5包...)时,我面临一个异常

An unhandled exception occured: Call retires were exceeded

使用过的版本:

  • 角度 -CLI: 8.3.20
  • 角度: 8.2.7
  • 节点: 12.12.1

在日志中也提到了这一点

[error] Error: Call retries were exceeded at ChildProcessWorker.initialize
77411 次浏览

2019年2月10日更新

这是 @angular/cli的一个问题。将版本更新到 >= 8.3.22应该可以解决这个问题: 请参阅 # 16515中的评论

原创的

基本上,构建过程的内存已经用完了: 请参阅相关的角点问题 # 15493# 16515

建议的补救办法是:

  • 更新节点至最新版本,例如 12.14.0
  • 增加构建过程的 记忆:
    • package.json中将 "build"脚本更改为: node --max_old_space_size=4096 node_modules/@angular/cli/bin/ng build
    • 在这种情况下,内存增加到 4GB
      根据您的项目的大小,您可能需要更多

作为一个快速的 解决办法,它也可以使用旧版本的 angular/clibuild-angular:

"devDependencies": {
"@angular-devkit/build-angular": "0.803.20",
"@angular/cli": "8.3.20",

另一个解决方案是禁用 差速装载(即跳过 ES5包的生成) ,如果您需要这样做的话。然后构建进程将需要更少的内存,并且可以工作。

我也遇到了同样的问题,通过将 angle/cli 版本更改为8.3.19,问题得到了解决。

对我来说,编辑 tsconfig.json 解决了我的问题。

@ angle-devkit/build-angle 发生了变化,更新了差分加载。要在 Ionic 项目中修复这个问题,请在 tsconfig.json 中将 目标值从 “ es2015”到“ es5”更改为

详情请浏览:-https://forum.ionicframework.com/t/ionic-cordova-build-get-stuck-at-generating-es5-bundles-for-differential-loading/180202/4

上面提出的解决方案确实对我有用,但是现在有一个更优雅的解决方案,对 Angular9及以上版本进行了测试。

不需要再手动操作 JS 堆分配(node --max_old_space_size=4096...)了,我们大多数人对此都感到不舒服。

解决方案只是将 "sideEffects": false添加到 package.json 文件中。

我发现这个令人敬畏的解决方案在官方 Angular GitHub 问题页面 给你和它的工作顺利为我。

使用

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

几天前我也遇到过类似的问题。

我使用的是 Node v10,只能通过在 tsconfig.json 中更改为“ target”: “ es5”来避免生产构建期间的异常。这样就消除了差别负荷,这是不可取的。

但是,在更新到 Node v14之后,我不再得到异常,并且能够再次使用“ target”: “ es2015”。

这只适用于那些谁已经迁移到角度10他们的应用程序 增加记忆也没有帮助

检查 package.json 中的“ typeescript”和“@type/node”,检查它们在 https://www.npmjs.com/package/@types/node中是否兼容

试着把@angle-devkit/build-angle 降到0.8 XX.X 以下

在我的例子中,我升级了 node 的版本。

我当时正在运行 v10.* ,升级到 v12.20.1,构建完成。

我使用 NodeVersionManager: 是的来切换节点的版本。

对于反应原生动物,您会发现这很有帮助。

npm  install --save-dev  escape-string-regexp

我真的尝试了所有的方法好几天(好几次!)修复这个问题(不增加服务器上允许的 RAM 内存,因为我已经处于允许的最大值(共享主机))。什么都没用,除了..

——日志级冗长

我用它来看看是什么引起了问题。但似乎需要大量内存才能实时显示完整的日志。在从我的命令中删除这个之后,所有的代码都是从第一次尝试构建的。