NG 构建由于内存中断而失败



我正在做一个旧的 Angular 项目,有很多 NPM 依赖项(几年前我们从 angular 2 beta ^^开始(,我们刚刚迁移到 Angular 9。几周后,由于内存问题,ng build 命令在我们的 CI 上随机失败:

92% 块资产优化 TerserPlugin发生未经处理的异常:生成 ENOMEM

问题是,我们已经为项目分配了 16Gb 的 RAM,但这还不够,我们还尝试调整 max_old_space_size 参数,但现在我们处于内存分配的最大状态,没有可用的交换选项。

我想了解为什么ng build命令需要这么多内存,但我找不到调试构建过程以查找问题的方法。我知道它可能与某个包裹有关,但我不知道如何识别它......

您知道避免在构建时消耗过多内存的最佳实践是什么吗? 如何调试或检查"npm run build"命令以查找问题?

提前感谢您的帮助!

很抱歉在这么长时间后回答它,在向角度项目添加一些依赖项后,我遇到了同样的问题。我把它贴在这里,以防有人需要它。 没有找到修复它的官方方法,但我发现如果您将"优化":false 添加到 angular.json 文件中。然后一切都好了。我认为优化过程中有问题(最小化脚本 .etc(。代码块如下所示:

"configurations": {
"production": {
"optimization": false,
"budgets": [
{
"type": "initial",
"maximumWarning": "30mb",
"maximumError": "50mb"
},
{
"type": "anyComponentStyle",
"maximumWarning": "2mb",
"maximumError": "4mb"
}
],
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
}
],
"outputHashing": "all"
}
}

最新更新