当我执行ng build
命令(为差异性加载生成ES5包时),我遇到了一个异常。
An unhandled exception occured: Call retires were exceeded
使用的版本:
- Angular-CLI:
8.3.20
- Angular:
8.2.7
- Node:
12.12.1
同时在日志中提到:
[error] Error: Call retries were exceeded at ChildProcessWorker.initialize
当我执行ng build
命令(为差异性加载生成ES5包时),我遇到了一个异常。
An unhandled exception occured: Call retires were exceeded
使用的版本:
8.3.20
8.2.7
12.12.1
同时在日志中提到:
[error] Error: Call retries were exceeded at ChildProcessWorker.initialize
这是一个与@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/cli
和build-angular
:
"devDependencies": {
"@angular-devkit/build-angular": "0.803.20",
"@angular/cli": "8.3.20",
另一个解决方法是禁用差异化加载(即跳过ES5包的生成),如果您需要的话。那么构建过程所需的内存将更少,也许可以运行。
node --max_old_space_size=4096
对我没有起作用,但使用8GB就可以了。 - Jonas Marty对我来说,编辑tsconfig.json解决了我的问题。
@angular-devkit/build-angular发生了变化,更新了差异加载。要在您的Ionic项目中修复此问题,请将tsconfig.json中的目标(target)值从“es2015”更改为“es5”
使用
node --max_old_space_size=6144 ./node_modules/@angular/cli/bin/ng build
几天前我遇到了类似的问题。
当时我使用的是Node v10,只有将tsconfig.json中的"target": "es5"更改为"target": "es2015"才能在生产构建期间避免异常,但这会移除差异加载(differential loading),这是不想要的。
然而,更新到Node v14后,我不再遇到异常,并且可以再次使用"target": "es2015"。
node --max_old_space_size=4096
...),这是我们大多数人不舒服的地方。"sideEffects": false
。我也遇到了同样的问题,通过将angular/cli版本更改为8.3.19,问题已得到解决。
我真的尝试了多天(多次!)来解决这个问题(而不增加服务器上允许的RAM内存,因为我已经达到了最大允许值(共享主机))。除了-
--loglevel verbose
我用它来查看是什么导致了问题。但似乎实时显示完整日志需要大量内存。从我的命令中删除这个后,一切都可以在第一次构建时完成。
这仅适用于已将应用程序迁移到Angular 10且增加内存也无法解决问题的人。
检查您的package.json中的"typescript"和"@types/node",检查它们是否与https://www.npmjs.com/package/@types/node兼容。
尝试将@angular-devkit/build-angular降级到0.8XX.X以下。
nvm use 16
或更高版本对我来说有效!
target: es2015
,请将其改为target: es5
。 - PierreDnode_modules/
并重新安装。 - Schmorrison