npm install - javascript 堆内存不足

问题描述 投票:0回答:12

运行时

npm install -g ionic
我收到以下错误:

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

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

node.js npm npm-install
12个回答
67
投票

您可以使用以下方式启动 NPM:

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

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


23
投票

我将其标记为重复,但以防万一有人遇到它,我在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


14
投票

运行这些命令

npm install -g 增加内存限制

从项目的根位置运行:

增加内存限制

查看此处了解更多详细信息https://www.npmjs.com/package/increase-memory-limit


11
投票

尝试一下,

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


4
投票

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

Docker Screenshot


0
投票

就我而言,我有一个我没有观察到的递归函数。递归可能会使堆内存不足。


0
投票

我在使用 WSL-Ubuntu 2 时遇到了同样的问题。

只需在 Windows 中移动到 C:/Users/Max 并使用以下输入创建一个名为 .wslconfig 的文件:

[wsl2]
memory=16GB

(如果你想要更少的内存,请调整)

这对我有用。 “Max”只是当前用户的一个例子


0
投票

使用纱线安装 相信我:)


-2
投票

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

来源链接

"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",
   .....

},


-4
投票

运行命令后为我解决了:

npm update

它将更新所有依赖项(小心损坏的更改)。也许

webpack-cli
依赖性是造成此问题的原因。


-4
投票

尝试这个生活窍门

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


-5
投票

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

我已将其删除并且有效。

prefix=D:\development\nodejs
© www.soinside.com 2019 - 2024. All rights reserved.