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
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
and build-angular
:
"devDependencies": {
"@angular-devkit/build-angular": "0.803.20",
"@angular/cli": "8.3.20",
如果需要,另一个解决方法是禁用差异加载(即跳过 ES5 包的生成)。然后构建过程将需要更少的内存并且可以工作。
利用
node --max_old_space_size=6144 ./node_modules/@angular/cli/bin/ng build
几天前我遇到了类似的问题。
我使用的是 Node v10,只能通过在 tsconfig.json 中更改为“target”:“es5”来避免生产构建期间的异常。这消除了不希望的差异负载。
但是,在更新到 Node v14 后,我不再遇到异常并且能够再次使用“target”:“es2015”。
上面提出的解决方法确实对我有用,但现在有一个更优雅的解决方案,针对 Angular9 及更高版本进行了测试。
不再需要手动处理 JS 堆分配(node --max_old_space_size=4096
...),我们大多数人对此并不满意。
解决方案只是添加"sideEffects": false
到您的 package.json 文件中。
我在这里的官方 Angular GitHub 问题页面上找到了这个很棒的解决方案,它对我来说很顺利。
我也遇到了同样的问题,通过将 angular/cli 版本更改为 8.3.19,问题已得到解决。
这仅适用于那些已经将他们的应用程序迁移到 angular 10 并且增加内存也无济于事的人
检查 package.json 中的“typescript”和“@types/node” 检查它们在https://www.npmjs.com/package/@types/node中是否兼容
尝试将@angular-devkit/build-angular 降级到 0.8XX.X 以下
对于 react-natives,您会发现这很有帮助。
晚点再谢我
npm install --save-dev escape-string-regexp