【问题标题】:mark-compacts near heap limit Allocation failed - JavaScript heap out of memory接近堆限制的标记压缩分配失败 - JavaScript 堆内存不足
【发布时间】:2021-05-06 01:51:42
【问题描述】:

Ineffective mark-compacts near heap limit 分配失败 - JavaScript heap out of memory,在将应用程序升级到 Angular 10 后,它开始给出 JavaScript heap out of memory 的错误。 有人可以请教。尝试了多种方法来增加内存,但没有得到解决。谢谢!

【问题讨论】:

    标签: node.js angular


    【解决方案1】:

    首先要做的是:您使用的是哪个节点版本?根据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,而不是在构建时运行。

    干杯!

    【讨论】:

    • 非常感谢您提供解决方案。但是,我尝试卸载升级后的 Node.js 并安装 13.13.0,它解决了我的问题。谢谢!
    • 太好了,@ganeshmandlik!希望一切顺利!
    猜你喜欢
    • 2021-10-20
    • 2020-08-22
    • 1970-01-01
    • 1970-01-01
    • 2022-10-06
    • 2020-03-13
    • 2020-09-11
    • 2020-08-05
    • 2019-07-06
    相关资源
    最近更新 更多