ng build 时超出调用重试次数异常

Sav*_*iya 63 angular-cli angular ng-build angular8 angular-cli-v8

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

An unhandled exception occured: Call retires were exceeded
Run Code Online (Sandbox Code Playgroud)

使用过的版本:

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

同样在日志中,它被提到

[error] Error: Call retries were exceeded at ChildProcessWorker.initialize
Run Code Online (Sandbox Code Playgroud)

TmT*_*ron 58

2019 年 2 月 10 日更新

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

原来的

基本上构建过程内存不足:请参阅相关的 angular-cli 问题#15493#16515

推荐的补救措施是:

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

作为一种快速解决方法,它也可以使用旧版本的angular/cliand build-angular

"devDependencies": {
    "@angular-devkit/build-angular": "0.803.20",
    "@angular/cli": "8.3.20",
Run Code Online (Sandbox Code Playgroud)

如果需要,另一个解决方法是禁用差异加载(即跳过 ES5 包的生成)。然后构建过程将需要更少的内存并且可以工作。

  • `node --max_old_space_size=4096` 对我不起作用。8GB就可以了。 (6认同)

Ara*_*opi 38

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

@angular-devkit/build-angular 发生了变化,更新了差异加载。要在项目离子解决这个问题,改变目标从值“ES2015”到“ES5”你tsconfig.json

有关更多详细信息:- https://forum.ionicframework.com/t/ionic-cordova-build-get-stuck-at-generating-es5-bundles-for-differential-loading/180202/4

  • 谢谢Aravindh,这也解决了我的问题。 (3认同)
  • 这不是一个“解决方案”,只是一个会产生其他负面影响的黑客/补丁 (3认同)

小智 5

node --max_old_space_size=6144 ./node_modules/@angular/cli/bin/ng build
Run Code Online (Sandbox Code Playgroud)


小智 5

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

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

但是,更新到 Node v14 后,我不再遇到异常,并且能够再次使用 "target": "es2015"。