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 --save 曾经与 webpack 一起使用过吗?