【问题标题】:npm install - javascript heap out of memorynpm install - javascript堆内存不足
【发布时间】:2017-02-27 23:10:31
【问题描述】:

运行npm install -g ionic 时出现以下错误:

致命错误:CALL_AND_RETRY_LAST 分配失败 - JavaScript 堆内存不足

有没有办法全局增加node.js的内存限制?

【问题讨论】:

标签: node.js npm npm-install


【解决方案1】:

您可以使用以下命令启动 NPM:

node --max-old-space-size=8000 $(which npm) install -g ionic

here 所述,默认值为 4000 (4Gb)。

【讨论】:

  • 你也可以启动:node --max_old_space_size=8000 $(which npm) install -g ionic
  • 默认 V8 内存限制为 1.7 GB。
  • 使用选项NODE_OPTIONS=--max_old_space_size=4096 - 文档:nodejs.org/api/cli.html#cli_node_options_options
  • 只想指出,在我的情况下,我收到了 JavaScript heap out of memory 错误,因为我的机器没有足够的内存。在这种情况下,我必须减少 max_old_space_size,而不是增加它。
  • 有谁知道这个命令的 Windows 等效项?我正在尝试做npm i,但得到这个“内存不足”错误。
【解决方案2】:

我将此标记为重复,但如果有人遇到它,我在https://stackoverflow.com/a/48895989/4200039 上发布了这个问题的现代解决方案:

从 2017 年 8 月发布的 v8.0 开始,NODE_OPTIONS 环境变量公开了此配置(请参阅 NODE_OPTIONS 已登陆 8.x!)。根据文章,仅允许在源中列入白名单的选项,其中包括“--max_old_space_size”。

所以我输入了我的 .bashrc: 导出 NODE_OPTIONS=--max_old_space_size=4096

【讨论】:

  • 我正在尝试“npm 发布”一个大小为 650 MB(未打包的 1.4 GB)的 .tgz,我遇到了这个问题。 NODE_OPTIONS 生效,但最后我收到另一个错误消息 ENOBUFS。
【解决方案3】:

试试node --max-old-space-size=<size>,其中大小以兆字节为单位。

【讨论】:

  • 运行npm install时如何设置节点选项
  • @Jayraj 通过节点启动 npm
【解决方案4】:

运行这些命令

npm install -g increase-memory-limit

从项目的根目录运行:

增加内存限制

看这里了解更多详情https://www.npmjs.com/package/increase-memory-limit

【讨论】:

    【解决方案5】:

    我遇到了类似的问题,但这种方法对我不起作用,因为我使用的是 docker,所以我不得不增加 docker 本身的内存大小来解决问题:

    Docker Screenshot

    【讨论】:

    • 对于在 docker 构建中遇到此问题的人,这是解决方案。点赞!
    【解决方案6】:

    运行命令后为我解决了:

    npm update
    

    它将更新所有依赖项(小心损坏的更改)。也许webpack-cli 依赖是造成这个问题的原因。

    【讨论】:

      【解决方案7】:

      对于 pacakge.json 文件中的 Angular 11 / 10 进行以下更改

      来源Link

      "scripts": {
          "ng": "ng",
          "start": "node --max_old_space_size=2192 ./node_modules/@angular/cli/bin/ng serve",
          "build": "node --max_old_space_size=2192 ./node_modules/@angular/cli/bin/ng build",
         .....
      

      },

      【讨论】:

        【解决方案8】:

        试试这个生活小窍门

        NODE_OPTIONS="--max-old-space-size=2048" npm install -g ionic

        【讨论】:

        • 这个“新”答案唯一要做的就是重复一半其他答案已经说过的话,包括接受的答案。
        【解决方案9】:

        我的 .npmrc 文件中的前缀不正确。通过移动到新的公司设备,此路径不再与旧的 nodejs 文件夹匹配。在 npm install 上,该命令会冻结很长时间,并在没有合适答案的情况下抛出 java out of heap 异常。

        我已经删除它并且它有效。

        prefix=D:\development\nodejs
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-02-10
          • 2019-09-01
          • 1970-01-01
          • 1970-01-01
          • 2017-10-10
          • 2019-09-10
          • 1970-01-01
          相关资源
          最近更新 更多