pnpm build打包时占内溢出

        这两天在打包H5网页的时候失败,总是提示下方错误

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory

严重错误:堆限制附近标记压缩无效分配失败 - JavaScript 堆内存不足

        尝试了多种方法,有一种方式是直接命令行设置的,还有直接在package.json文件的build前面加命令的,但是没有效果,下方的解决方法亲测有效。

rendering chunks (4)...
<--- Last few GCs --->[8676:000001FAEAF60F70]   101479 ms: Mark-sweep (reduce) 2036.2 (2083.2) -> 2034.8 (2082.1) MB, 3196.4 / 0.2 ms  (average mu = 0.247, current mu = 0.162) allocation failure GC in old space requested
[8676:000001FAEAF60F70]   103959 ms: Mark-sweep (reduce) 2035.3 (2082.4) -> 2035.3 (2082.4) MB, 2478.4 / 0.0 ms  (average mu = 0.147, current mu = 0.001) allocation failure GC in old space requested<--- JS stacktrace --->FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory1: 00007FF67AF3B34F v8::internal::CodeObjectRegistry::~CodeObjectRegistry+1235992: 00007FF67AEC8CB6 v8::internal::MicrotaskQueue::GetMicrotasksScopeDepth+652063: 00007FF67AEC9D8D node::OnFatalError+3014: 00007FF67B7FC36E v8::Isolate::ReportExternalAllocationLimitReached+945: 00007FF67B7E694D v8::SharedArrayBuffer::Externalize+7816: 00007FF67B689F2C v8::internal::Heap::EphemeronKeyWriteBarrierFromCode+14687: 00007FF67B696BD9 v8::internal::Heap::PublishPendingAllocations+11298: 00007FF67B693BAA v8::internal::Heap::PageFlagsAreConsistent+28429: 00007FF67B686809 v8::internal::Heap::CollectGarbage+2137
10: 00007FF67B6849C0 v8::internal::Heap::AllocateExternalBackingStore+2000
11: 00007FF67B6A9546 v8::internal::Factory::NewFillerObject+214
13: 00007FF67B88A061 v8::internal::SetupIsolateDelegate::SetupHeap+494417
14: 000001FAECEE4B52

现在下载increase-memory-limit 和 cross-env

npm install cross-env increase-memory-limit

到package.json文件夹下添加配置如下:

"fix-memory-limit": "cross-env LIMIT=8048 increase-memory-limit",

 添加完配置之后,在项目目录下运行

pnpm run fix-memory-limit

完成之后,直接打包或运行代码。

小计:没有很清楚造成这个nodejs的栈内存溢出的原因,就看到网上很多都是修改node的内存的,具体的解释就是在打包的时候数据没办法被释放,导致内存溢出。
不是很理解,一下是AI给的可能得原因:

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory 这个错误通常发生在 Node.js 应用程序或脚本在执行过程中耗尽了可用的 JavaScript 堆内存。在 Vue.js 或其他前端框架的打包过程中遇到这个错误,可能有以下几个原因:内存限制: Node.js 在启动时默认分配的堆内存大小有限,对于64位系统,默认值通常是1.4GB左右。当构建过程中的 JavaScript 对象和数据结构占用的内存超过了这个限制,就会出现内存溢出。复杂的构建任务: 构建工具如 Webpack 可能在处理大型项目或复杂配置时消耗大量内存。例如,解析大量的模块依赖、执行 babel 转译、压缩代码、处理样式资源等操作都可能消耗大量内存。循环引用或泄漏: 如果构建过程中存在内存泄漏或者不正确的垃圾回收机制,会导致不再使用的对象无法被及时释放,从而逐渐消耗掉可用的内存。插件或加载器问题: 某些构建插件或加载器可能在执行时消耗过多内存,尤其是当它们处理大文件或进行深度递归操作时。并发构建: 如果同时运行多个构建任务,每个任务都会消耗内存,可能导致总内存消耗超出系统限制。解决这个问题的方法包括:增加内存限制: 可以通过增加 Node.js 启动时的最大堆内存来解决。例如,对于 Vue CLI 项目,可以在 package.json 中的脚本命令前添加 --max_old_space_size=<size> 参数,如 npm run build -- --max_old_space_size=4096,将最大堆内存设置为4GB。优化构建配置: 审查并优化 Webpack 配置,移除不必要的插件或加载器,减少并行执行的任务数量,使用更高效的编译选项。清理内存泄漏: 使用内存分析工具检查构建过程中是否存在内存泄漏,并修复相关问题。升级构建工具: 升级到最新版本的构建工具和依赖包,新版本可能已经修复了一些已知的性能问题和内存消耗问题。使用专用构建服务器: 如果本地机器经常遇到内存不足的问题,可以考虑使用具有更多内存的专用构建服务器来执行构建任务。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3250122.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

使用Docker 实现 MySQL 循环复制(二)

系列文章 使用Docker 实现 MySQL 循环复制&#xff08;一&#xff09; 目录 系列文章1. 创建三个 mysql 容器1.1 准备三个 mysql 容器的挂载卷1.2 为三个mysql实例创建配置文件1.3 修改各目录的权限以满足 mysql 容器的要求1.4 创建 docker-compose.yaml 文件1.5 创建容器 1. …

记录一下在Hyper-v中动态磁盘在Ubuntu中不完全用到的问题(扩展根目录)

在之前给hyper虚拟机的Ubuntu分配磁盘有20G&#xff1b; 后来在Ubuntu中查看磁盘发现有一个分区没用到&#xff1a; 贴的图片是完成扩展后的 之前这里是10G&#xff0c;然后有个dev/sda4的分区&#xff0c;也是10G&#xff0c;Type是Microsoft Basic Data&#xff1b; …

实现了一个心理测试的小程序,微信小程序学习使用问题总结

1. 如何在跳转页面中传递参数 &#xff0c;在 onLoad 方法中通过 options 接收 2. radio 如何获取选中的值&#xff1f; bindchange 方法 参数e, e.detail.value 。 如果想要获取其他属性&#xff0c;使用data-xx 指定&#xff0c;然后 e.target.dataset.xx 获取。 3. 不刷…

项目实用linux 操作详解-轻松玩转linux

我之前写过完整的linux系统详解介绍&#xff1a; LInux操作详解一&#xff1a;vmware安装linux系统以及网络配置 LInux操作详解二&#xff1a;linux的目录结构 LInux操作详解三&#xff1a;linux实际操作及远程登录 LInux操作详解四&#xff1a;linux的vi和vim编辑器 LInux操作…

剧本杀小程序搭建,为商家带来新的收益方向

近几年&#xff0c;剧本杀游戏成为了游戏市场的一匹黑马&#xff0c;受到了不少年轻玩家的欢迎。随着信息技术的快速发展&#xff0c;传统的剧本杀门店已经无法满足游戏玩家日益增长的需求&#xff0c;因此&#xff0c;剧本杀市场开始向线上模式发展&#xff0c;实现行业数字化…

灵雀云AML:赋能金融AI,构建数智时代核心竞争力

在人工智能&#xff08;AI&#xff09;技术的迅猛发展中&#xff0c;金融行业正迈入变革的新时代。AI不仅在优化投资决策、信用评估、实时监控和欺诈识别方面展现出强大功能&#xff0c;还极大地提升了客户体验、降低了运营成本&#xff0c;并推动了产品创新。面对智能时代的挑…

唯众特色软件开发实训室解决方案

特色软件开发实训室解决方案旨在构建一个全方位、高度灵活且效率卓越的实训生态系统&#xff0c;它不仅仅是一个学习空间&#xff0c;更是一个让学生能够身临其境&#xff0c;在模拟真实工作环境中锤炼技能的实战场。通过精心设计的实训项目与案例&#xff0c;学生能够在实践中…

在Ubuntu上安装redis

Ubuntu上安装redis 一、通过下载redis的压缩包安装二、通过apt包管理器安装Redis三、修改redis的配置文件四、控制redis启动 Redis是一种开源的内存数据存储&#xff0c;可以用作数据库、缓存和消息代理等。本文将会介绍两种不同的安装方式&#xff0c;包括通过压缩包安装以及通…

日志之ELK使用讲解

文章目录 1 ELK1.1 ELK 简介1.1.1 Logstash1.1.2 Elasticsearch1.1.3 Kibana 1.2 ELK 实现方案1.3 ELK 平台搭建1.3.1 安装 Logstash1.3.2 安装 Elasticsearch1.3.3 安装 Kibana 1.4 在 SpringBoot 中使用 ELK1.4.1 修改并部署 Spring Boot 项目1.4.2 配置 Shipper 角色 Logsta…

国内从事双臂机器人的团队

一、背景 随着人形机器人的发展&#xff0c;双臂协同操作得到了越来越多研究人员的关注。我自己也是做双臂机器人方向的&#xff0c;虽然通过看论文或刷知乎了解到国内有许多团队在做双臂机器人方向&#xff0c;但还没有系统的整理过&#xff0c;因此趁这次机会&#xff0c;好…

【C++进阶学习】第七弹——AVL树——树形结构存储数据的经典模块

二叉搜索树&#xff1a;【C进阶学习】第五弹——二叉搜索树——二叉树进阶及set和map的铺垫-CSDN博客 目录 一、AVL树的概念 二、AVL树的原理与实现 AVL树的节点 AVL树的插入 AVL树的旋转 AVL树的打印 AVL树的检查 三、实现AVL树的完整代码 四、总结 前言&#xff1a…

前端轻松拿捏!最简全栈登录认证和权限设计!

本项目代码已开源&#xff0c;具体见&#xff1a; 前端工程&#xff1a;vue3-ts-blog-frontend 后端工程&#xff1a;express-blog-backend 数据库初始化脚本&#xff1a;关注公众号程序员白彬&#xff0c;回复关键字“博客数据库脚本”&#xff0c;即可获取。 前端走向全栈&am…

宋仕强谈狼性营销与五看三定

宋仕强说余承东董宇辉联合宣传&#xff0c;他们的狼性营销我们要学习&#xff0c;我们金航标和萨科微要认真学习华为的先进理念和成功经验&#xff0c;和“五看三定”思维和工作模型&#xff0c;让管理团队深度思考&#xff0c;再不断实践。在产品定义和市场定位方面&#xff0…

小程序js 把链接转换为二维码

GitHub - Rookie-M/weapp-qrcode: weapp.qrcode.js 在 微信小程序 中&#xff0c;快速生成二维码 1.要下载上面地址的插件包 2.引用 import drawQrcode from ../../utils/weapp.qrcode.minonLoad(options) {let that thisconsole.log(JSON.parse(options.info))that.setData…

Ubuntu 24.04 LTS 桌面安装MT4或MT5 (MetaTrader)教程

运行脚本即可在 Ubuntu 24.04 LTS Noble Linux 上轻松安装 MetaTrader 5 或 4 应用程序&#xff0c;使用 WineHQ 进行外汇交易。 MetaTrader 4 (MT4) 或 MetaTrader 5 是用于交易外汇对和商品的流行平台。它支持各种外汇经纪商、内置价格分析工具以及通过专家顾问 (EA) 进行自…

【BUG】已解决: KeyboardInterrupt

已解决&#xff1a; KeyboardInterrupt 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页&#xff0c;我是博主英杰&#xff0c;211科班出身&#xff0c;就职于医疗科技公司&#xff0c;热衷分享知识&#xff0c;武汉城市开发者社区主理人 擅长.net、C…

折叠屏遇上Galaxy AI,三星新一代Galaxy Z系列开启移动终端新篇章

作者 | 曾响铃 文 | 响铃说 随着换机周期的普遍延长以及智能手机行业内竞争态势的日益激烈&#xff0c;传统的硬件升级与参数比拼已难以全面满足消费者日益多元化的需求。面对这一挑战&#xff0c;行业迫切需要探索新的增长路径与发展方向。 折叠屏技术的兴起&#xff0c;无…

npm install时报错 reason: certificate has expired

在VS code中导入新项目&#xff0c;执行npm install时报错&#xff1a; npm warn old lockfile Could not fetch metadata for antv/g3.4.10 FetchError: request to https://registry.npm.taobao.org/antv%2fg failed, reason: certificate has expirednpm warn old lockfile …

用DrissionPage过某里滑块分析

最近我又在找工作了&#xff0c;悲哀啊~&#xff0c;面试官给了一道题&#xff0c;要求如下&#xff1a; 爬虫机试&#xff1a;https://detail.1688.com/offer/643272204627.html 过该链接的滑动验证码&#xff0c;拿到正确的商品信息页html&#xff0c;提取出商品维度的信息&a…

Notepad++换安装路径之后,右键打开方式报错:Windows无法访问指定设备、路径或文件。你可能没有适当的权限访问该项目。的处理方法

把Notepad添加到右键打开方式&#xff0c;可以参考下面的3篇文章添加&#xff1a; https://blog.csdn.net/xiaoerbuyu1233/article/details/88287747 https://blog.csdn.net/qq_44000337/article/details/120277317 https://www.cnblogs.com/zhrngM/p/12899026.html 这里主要是…