当前位置: 首页 > news >正文

记录一下,解决js内存溢出npm ERR! code ELIFECYCLEnpm ERR! errno 134 以及 errno 9009

项目是个老项目,依赖包也比较大,咱就按正常流程走一遍来详细解决这个问题,先看一下node版本,我用的是nvm管理的,详细可以看我的其他文章

友情提醒:如果项目比较老,包又大,又有一些需要权限的特定包,下载不下来的话,直接把同事包copy过来算了哈哈哈哈哈,不然折腾的老费劲了。

npm ERR! code ELIFECYCLEnpm ERR! errno 134,这个错误通常表示在 npm 的上下文中,这可能是由于脚本执行过程中遇到了问题,比如内存不足、脚本崩溃或其他未处理的异常。俗称js内存溢出

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory

解决过程如下:

方法一:    setx NODE_OPTIONS "--max_old_space_size=5120"

node本身默认的内存并不大,运行一般的项目足够了,但如果项目比较大的时候,就会出现内存不足的情况;我这里是将他设置为5GB,要将 NODE_OPTIONS 环境变量设置为使用 5GB 的最大旧空间大小,你可以按照以下步骤操作:

        1、打开命令提示符(Windows)或终端(macOS/Linux)。

        2、输入以下命令:

setx NODE_OPTIONS "--max_old_space_size=5120"

这样,NODE_OPTIONS 环境变量就会在系统级别被设置为使用 5GB 的最大旧空间大小

这个方法也是我最开始尝试的,但是对于我来说不生效,不过,多数人这一步就ok了的。不ok的接着往下看。

方法二: 安装插件 npm install -g increase-memory-limit 

在终端数据以下命令:

npm install -g increase-memory-limit
increase-memory-limit

原理:

increase-memory-limit 是一个 npm 脚本,用于增加 Node.js 进程的内存限制。在 Node.js 中,每个进程默认的内存限制是 1.76 GB(约为 1843 MB)。

可以使用 increase-memory-limit 脚本或 --max-old-space-size 选项来增加内存限制,脚本会自动增加 Node.js 进程的内存限制,然后运行 node app.js 命令。以下是一个使用 increase-memory-limit 脚本的例子:

"scripts": {"start": "increase-memory-limit node app.js"
}

也可以在运行 npm 命令时使用 --max-old-space-size 选项来增加内存限制,其中 <command> 是你想要运行的 npm 命令。例如,以下命令将内存限制增加到 5GB:

npm --max-old-space-size=5120 <command>

请注意,增加内存限制可能会影响你的应用程序的性能和稳定性。在增加内存限制之前,你应该确保你的应用程序确实需要更多的内存,并且你的系统有足够的可用内存。

在执行完上述的指令后,再次运行npm run serve(用自己的项目的启动指令)

如果到这一步还没有跑起来,或则报了npm ERR! code ELIFECYCLE npm ERR! errno 9009,那接着往下看:

这个时候会出现 '"node --max-old-space-size=10240"' 不是内部或外部命令,也不是可运行的程序
或批处理文件

找到node_modules下的.bin文件:

.bin下面的所有的.cmd文件里的 "%_prog%" 替换成 %_prog% 就可以了,全局替换可能检测不到,最好是这里的文件都点开一下,再全局替换,或则直接手动替换

至此问题就以及解决了。

我在这个问题上花了不少时间,查V8原理查js内存机制什么的,欸,这些虽然平时碰不到,但是碰到了就去好好了解一下,扩展一下知识。

http://www.lryc.cn/news/498272.html

相关文章:

  • 【JavaWeb后端学习笔记】MySQL的数据查询语言(Data Query Language,DQL)
  • 360 最新Android面试题及参考答案
  • 《操作系统 - 清华大学》6 -3:局部页面置换算法:最近最久未使用算法 (LRU, Least Recently Used)
  • ES6新增了哪些特性(待更新)
  • 剖析一下自己的简历第二条
  • 威联通-001 手机相册备份
  • 性能测试基础知识jmeter使用
  • Ceph文件存储
  • Hive分区表新增字段并指定位置
  • 关系型数据库(RDBMS)与非关系型数据库(NoSQL)应用场景
  • 浅谈CI持续集成
  • 华为新手机和支付宝碰一下 带来更便捷支付体验
  • shell编程基础笔记
  • VS Code配置Lua调试环境
  • FPGA(一)Quartus II 13.1及modelsim与modelsim-altera安装教程及可能遇到的相关问题
  • 【单片机】ESP32-S3+多TMC2209控制步进电机系列1 UART通信及无传感回零 硬件部分
  • Django之ORM
  • html css 图片背景透明
  • 使用ALB实现gRPC协议的负载均衡
  • 解决IDEA的easycode插件生成的mapper.xml文件字段之间逗号丢失
  • 【Linux测试题】
  • python使用openpyxl处理excel
  • 【JavaWeb后端学习笔记】Mybatis基础操作以及动态SQL(增、删、改、查)
  • 基于MATLAB野外观测站生态气象数据处理分析实践应用
  • IP 地理位置定位技术原理概述
  • C语言(分支结构)
  • 批量将不同的工作簿合并到同一个Excel文件
  • 详解AI网关助力配电房实现智能化管控应用
  • 2025美赛数学建模常用数据库网站大全
  • Wordpress设置固定链接形式后出现404错误