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://www.mzph.cn/pingmian/48429.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux源码安装的Redis如何配置systemd管理并设置开机启动

文章目录 实验前提实验 实验前提 已完成源码安装并能正常启动redis /usr/local/bin/redis-server能正常启动redis 实验 vim /etc/systemd/system/redis.service内容如下&#xff1a; [unit] Descriptionredis-server Afternetwork.target[Service] Typeforking ExecStart/…

【Blockly图形化积木编程二次开发学习笔记】5.自动保存与恢复

文章目录 引用使用 引用 <script src"./blockly/appengine/storage.js"></script>使用 <script>window.setTimeout(BlocklyStorage.restoreBlocks, 0); // 从本地存储中恢复块BlocklyStorage.backupOnUnload(); // 用户离开页面时自动将块备份到…

基于radix4的booth乘法器设计

下述乘法器是基于radix 4的booth乘法器&#xff0c;常用于集成电路IC的乘法器设计。 支持位宽可设置支持signsign、signunsign、unsignsign、unsignunsign; // FHDR------------------------------------------------------------ …

降雨量预测 | Matlab基于ARIMA-RBF降雨量预测

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 降雨量预测 | Matlab基于ARIMA-RBF降雨量预测 注&#xff1a;程序和数据放在一个文件夹。 程序语言为matlab&#xff0c;程序可出预测效果图&#xff0c;指标图; 代码特点&#xff1a;参数化编程、参数可方便更改、代…

web前端学习笔记Day02

web学习Day02 一、页面布局 盒子模型 盒子将页面的所有标签都包含在了一个矩形区域content(内容区域)->padding(内边距区域)->border(边框区域)->margin(外边距区域) div标签: 一行只能显示一个&#xff08;独占一行&#xff09;width默认为父元素宽度&#xff0c…

Docker核心技术:Docker原理之Namespace

云原生学习路线导航页&#xff08;持续更新中&#xff09; 本文是 Docker核心技术 系列文章&#xff1a;Docker原理之Namespace&#xff0c;其他文章快捷链接如下&#xff1a; 应用架构演进容器技术要解决哪些问题Docker的基本使用Docker是如何实现的 Docker核心技术&#xff1…

多模态AI:概念、用例、优势、挑战及发展未来

多模态实际上是在尝试复制人类的感知方式&#xff1a;我们将视觉、声音和触觉等感官输入结合起来&#xff0c;形成对现实的更细致入微的感知&#xff0c;并利用这些数据来做出决定或采取行动。多模态模式也在尝试做同样的事情。 多模态AI的应用范围正在不断扩大&#xff0c;那么…

【Spring】深入理解了IOC(控制反转)和DI(依赖注入)

学习时间&#xff1a;09&#xff1a;XX--10&#xff1a;28&#xff0c;50min 微信读书 今日学习Spring框架&#xff0c;有很大的收获&#xff0c;感觉是学习SpringBoot以来的一个里程碑&#xff0c;因为今天上午这50min理解了Spring框架的核心基础&#xff0c;控制反转&#x…

使用 useLazyAsyncData 提升数据加载体验

title: 使用 useLazyAsyncData 提升数据加载体验 date: 2024/7/19 updated: 2024/7/19 author: cmdragon excerpt: 摘要&#xff1a;本文介绍useLazyAsyncData函数在Nuxt 3中的使用&#xff0c;以提升数据加载体验。此函数支持异步获取数据并在组件中处理挂起与错误状态&…

生成式AI在IT领域的应用中,对产品,UI设计师,前端开发。后端开发,运维的影响?

生成式AI在IT领域的应用将对产品、UI设计师、前端开发、后端开发和运维等多个角色产生深远影响。 以下是对这些角色的具体影响、技术对比以及未来展望的分析&#xff1a; 产品经理 影响革新&#xff1a; 精准需求洞察&#xff1a;生成式AI深度挖掘市场数据与用户反馈&#xff0…

IOCTLance:一款针对x64 WDM驱动程序的漏洞检测工具

关于IOCTLance IOCTLance是一款针对x64 WDM驱动程序的漏洞检测工具&#xff0c;该工具来源于CODE BLUE 2023上展示的一个名为“使用符号执行和污点分析增强 WDM 驱动程序漏洞检测 ”的项目。该工具能够有效增强检测Windows驱动程序模型&#xff08;WDM&#xff09;驱动程序中各…

Redis之List列表

目录 一.列表讲解 二.列表命令 三.内部编码 四.应用场景 Redis的学习专栏&#xff1a;http://t.csdnimg.cn/a8cvV 一.列表讲解 列表类型是用来存储多个有序的字符串&#xff0c;如下所示&#xff0c;a、b、c、d、e五个元素从左到右组成了一个有序的列表&#xff0c;列表中的…

标准IO中fopen函数返回的FILE*指针的存储位置

程序的内存分配&#xff1a; 一个由C/C编译的程序占用的内存分为以下几个部分 1、栈区&#xff08;stack&#xff09;&#xff1a;由编译器自动分配释放 &#xff0c;存放函数的参数值&#xff0c;局部变量的值等。其 操作方式类似于数据结构中的栈。 …

软链接跟硬链接有什么区别

‌软连接和‌硬连接是‌linux文件系统中的两种不同类型的链接&#xff0c;它们的主要区别在于&#xff1a; 本质不同&#xff1a;硬连接是同一文件的不同名称&#xff0c;而软连接则指向另一个文件或目录的路径。硬连接与原始文件共享相同的inode信息&#xff0c;因此它们指向同…

微软史诗级的蓝屏

本周经历了微软的蓝屏&#xff0c;一直到周末还在加班处理公司的问题。 个人终端受到的影响较大&#xff0c;服务器上也受到了影响。因为蓝屏的事情导致不少麻烦&#xff0c;据同事说因为蓝屏的问题&#xff0c;MGH 的手术安排也受到了影响。 目前我们也在着手处理有部署 Wind…

【Apollo学习笔记】—— Cyber RT之创建组件, test ok

0. 前置知识 这部分内容详见第三章:Component组件认知与实践https://apollo.baidu.com/community/article/1103 0.1 什么是 Component Apollo 的 Cyber RT 框架是基于组件(component)概念来构建的。每个组件都是 Cyber RT 框架的一个特定的算法模块, 处理一组输入并产生其…

Leetcode 3227. Vowels Game in a String

Leetcode 3227. Vowels Game in a String 1. 解题思路2. 代码实现 题目链接&#xff1a;3227. Vowels Game in a String 1. 解题思路 这一题稍微分析一下之后就会发现&#xff0c;这个游戏有且只有一种情况Bob才能够赢&#xff0c;即原始字符串当中不存在元音字母的情况&…

算法:优先级队列(堆)

目录 题目一&#xff1a;最后一块石头重量 题目二&#xff1a;数据流中的第 K 大元素 题目三&#xff1a;前 K 个高频单词 题目四&#xff1a;数据流的中位数 题目一&#xff1a;最后一块石头重量 有一堆石头&#xff0c;每块石头的重量都是正整数。 每一回合&#xff0c…

基于SpringBoot+Vue的网吧管理系统(带1w+文档)

基于SpringBootVue的网吧管理系统(带1w文档) 基于SpringBootVue的网吧管理系统(带1w文档) 网吧管理系统&#xff0c;为了随时随地查看网吧管理信息提供了便捷的方法&#xff0c;更重要的是大大的简化了管理员管理网吧的方式方法&#xff0c;更提供了其他想要了解网吧管理信息及…

Unity如何使摄像机视锥体外的物体不被剔除

在默认情况下&#xff0c;Unity在渲染场景时会剔除掉摄像机视椎体以外的所有物体&#xff0c;这就会导致某些特殊情况下&#xff0c;我们希望显示在场景中的物体反而被剔除了&#xff0c;比如用Shader制作顶点动画时&#xff0c;如果物体本身的位置在摄像机以外&#xff0c;而顶…