【发布时间】:2021-05-06 01:51:42
【问题描述】:
Ineffective mark-compacts near heap limit 分配失败 - JavaScript heap out of memory,在将应用程序升级到 Angular 10 后,它开始给出 JavaScript heap out of memory 的错误。 有人可以请教。尝试了多种方法来增加内存,但没有得到解决。谢谢!
【问题讨论】:
Ineffective mark-compacts near heap limit 分配失败 - JavaScript heap out of memory,在将应用程序升级到 Angular 10 后,它开始给出 JavaScript heap out of memory 的错误。 有人可以请教。尝试了多种方法来增加内存,但没有得到解决。谢谢!
【问题讨论】:
首先要做的是:您使用的是哪个节点版本?根据compatibility informations,您应该使用 v10.x 或 v12.x。我已经看到将 node v8.x 与新的 Angular 版本一起使用时发生了一些奇怪的错误。
话虽如此,在我从事的项目中(包含 500 多个组件和 190 多个模块的大型项目,模块层次结构存在很多问题),我们不得不更改构建脚本以增加节点内存。它可以在你的 package.json 文件中完成:
// package.json file
"scripts": {
"build": "node --max_old_space_size=6144 ./node_modules/@angular/cli/bin/ng build",
"postinstall": "ngcc --properties es2015 es5 browser module main --first-only --create-ivy-entry-points"
},
您会注意到安装后脚本。使用它是个好主意,因为从 Angular v9 开始,新的 Ivy 编译器是项目的默认编译器,但不是库的默认编译器。这意味着使用兼容性编译器 (ngcc),它将处理所有 Angular 库。 postscript 将在 npm install 之后运行 ngcc,而不是在构建时运行。
干杯!
【讨论】: