npm运行出现堆内存溢出问题

本文探讨npm运行时遇到的JavaScript堆内存溢出问题,分析其根本原因在于Node.js的V8引擎对内存使用的限制,并提供两种解决方案:一是通过setx命令修改环境变量增加内存限制,二是直接在package.json中修改构建命令。
部署运行你感兴趣的模型镜像

npm运行出现堆内存溢出问题

![在这里插入图片描述](https://img-blog.csdnimg.cn/20200528165824866.png
当npm run dev的时候出现上述问题,这里提示javascript堆内存溢出。

问题原因

CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory JavaScript堆内存不足。查阅网上资料后,这里说的 JavaScript 其实就是 Node。
JavaScript 是一款拥有「自动垃圾回收」功能的编程语言。V8 作为一个 JavaScript 引擎,最初服务于 Google Chrome 浏览器的。它随着 Chrome 的第一版发布而发布以及开源。现在它除了 Chrome 浏览器,已经有很多其他的使用者了。诸如 NodeJS、MongoDB、CouchDB 等。在 Node 中通过 JavaScript 使用内存时只能使用部分内存(64位系统下约为1.4 GB,32位系统下约为0.7 GB)。如果项目十分庞大,超出了V8对于Node默认的内存最大限制,就会出现此问题。

解决方案一

1.打开一个cmd窗口
2. setx NODE_OPTIONS --max_old_space_size=8192(这个操作设置用户变量)
3.关闭所有cmd /代码编辑器
4. 重新打开cmd并再次运行npm命令

知识点:
SETX命令:Window XP 以上的系统都自带了该命令(如果没有,下载一个Setx.exe),这种方式为永久设定环境变量。
设置用户环境变量 setx path “%JAVA_HOME%\bin”
设置系统环境变量 setx path “%JAVA_HOME%\bin” /m

使用时,应该注意:
1.setx设置环境变量后,将在新打开的终端中生效,当前终端不会立即生效。
2.setx在设置变量的长度超过1024,会截取多出的字符。
3.setx还可以操作远程计算机,具体参数设置百度一下setx用法。
4.setx在设置某一变量的值,如果已经存在该变量会覆盖之前的值。所以正确方式是:要保存值=获取当前该变量的值+新值。

解决方案二

1.打开你的工程中的package.json文件
2.找到
“scripts":{
“build”:“node build/build.js”
}
3.在build中加入–max_old_space_size=8192
即:
“scripts":{
“build”:“node --max_old_space_size=8192 build/build.js”
}

以上参考:《深入浅出Node.js》

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值