npm install - javascript堆内存不足

Posted

技术标签:

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

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

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

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

【问题讨论】:

您能告诉我们您使用的是什么操作系统,node 和 npm 是什么版本吗? Windows 10、Node v6.8.1、npm v3.10.8 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - process out of memory的可能重复 【参考方案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://***.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

【讨论】:

以上是关于npm install - javascript堆内存不足的主要内容,如果未能解决你的问题,请参考以下文章

如何从 npm install 中包含样式表和 javascript

javascript 将已安装的node_modules与干净的npm install进行比较

npm install -g vue-cli 报错

npm install --save 曾经与 webpack 一起使用过吗?

在 Windows 上使用 npm install 时,Jenkins 脚本过早退出

IJpress Post Installation Batch与NodeJS没有立即找到NPM