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

npm打包内存不足- JavaScript heap out of memory

直接贴出报错信息

<--- Last few GCs --->[30904:0000010F60FE58E0]    22090 ms: Scavenge 2037.4 (2069.4) -> 2036.4 (2074.2) MB, 2.5 / 0.0 ms  (average mu = 0.228, current mu = 0.216) allocation failure 
[30904:0000010F60FE58E0]    22101 ms: Scavenge 2039.9 (2074.2) -> 2037.5 (2074.9) MB, 3.5 / 0.0 ms  (average mu = 0.228, current mu = 0.216) allocation failure 
[30904:0000010F60FE58E0]    22110 ms: Scavenge 2040.5 (2074.9) -> 2038.5 (2075.7) MB, 3.3 / 0.0 ms  (average mu = 0.228, current mu = 0.216) allocation failure <--- JS stacktrace --->FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory1: 00007FF60F407C4F v8::internal::CodeObjectRegistry::~CodeObjectRegistry+1142072: 00007FF60F395EC6 DSA_meth_get_flags+655423: 00007FF60F396D7D node::OnFatalError+3014: 00007FF60FCCB6CE v8::Isolate::ReportExternalAllocationLimitReached+945: 00007FF60FCB5CAD v8::SharedArrayBuffer::Externalize+7816: 00007FF60FB5907C v8::internal::Heap::EphemeronKeyWriteBarrierFromCode+14687: 00007FF60FB65D29 v8::internal::Heap::PublishPendingAllocations+11298: 00007FF60FB62CFA v8::internal::Heap::PageFlagsAreConsistent+28429: 00007FF60FB55959 v8::internal::Heap::CollectGarbage+2137
10: 00007FF60FB5E21B v8::internal::Heap::GlobalSizeOfObjects+331
11: 00007FF60FBA498B v8::internal::StackGuard::HandleInterrupts+891
12: 00007FF60F8AC616 v8::internal::DateCache::Weekday+8630
13: 00007FF60FD593C1 v8::internal::SetupIsolateDelegate::SetupHeap+494417
14: 0000010F62F0C024

方案一

通过设置系统环境变量来实现

NODE_OPTIONS   --max-old-space-size=8192

查看是否设置通过可以使用以下命令,要新打开一个cmd窗口

node -e "console.log(v8.getHeapStatistics().total_available_size / 1024 / 1024 + ' MB')"

如果输出解决设置的值说明设置成功。

这里有个小坑,如果通过vscode的终端查看输出还是默认的2048则使用方案二设置

方案二

直接在vscode中设置环境变量

打开VSCode设置(Ctrl+,),搜索 Terminal > Integrated: Env,点击“Edit in settings.json”,添加:

"terminal.integrated.env.windows": {"NODE_OPTIONS": "--max-old-space-size=8192"
}

设置成功以后,新建一个终端运行下面命令看是否成功

node -e "console.log(v8.getHeapStatistics().total_available_size / 1024 / 1024 + ' MB')"

如果输出解决设置的值说明设置成功。

方案三

在项目或脚本中直接指定参数

可以直接在package.json的脚本中指定内存参数:

{"scripts": {"build": "run build node --max-old-space-size=8192"}
}

http://www.xdnf.cn/news/2918.html

相关文章:

  • SQLMesh增量模型实战指南:时间范围分区
  • 对比测评:为什么AI编程工具需要 Rules 能力?
  • 借助云蝠智能大模型呼叫,打造企业招聘竞争力
  • 如何强制触发 OpenShift 节点的 MachineConfig 更新
  • GC的查看
  • MySQL事务隔离级别的实现原理MVCC
  • 今日行情明日机会——20250429
  • UEC++第15天|番茄插件、实现跳跃、实现背景运动
  • JavaScript高级进阶(五)
  • 豪越科技消防立库方案:实现应急物资高效管理
  • 链表的中间节点
  • 机器视觉算法与应用:企业级开发全流程详解
  • Kotlin -> lateinit 和 lazy 详解
  • 嵌入式音视频实时通话EasyRTC打造设备安装与调试的高效远程解决方案
  • Nginx反向代理的负载均衡配置
  • Python入门:流程控制练习
  • 数据编辑器中变量的精妙计算与灵动转换​
  • 汽车启动原理是什么?
  • 水库现代化建设指南-水库运管矩阵管理系统建设方案
  • Linux环境变量的作用以及进程的虚拟地址原理
  • 【Tips】高效文献管理:Zotero 导入参考文献的多种方式详解
  • 【PyTorch动态计算图实战解析】从原理到高效开发
  • CSS in JS:机遇与挑战的思考
  • Java | 韩顺平 循序渐进学Java自用笔记---OOP高级
  • EPSG的作用
  • C++23中的std::forward_like:完美转发的增强
  • 第十六届蓝桥杯 2025 C/C++B组第一轮省赛 全部题解(未完结)
  • 探索目标检测:边界框与锚框的奥秘
  • leetcode 21. 合并两个有序链表(c++解法+相关知识点复习)
  • 目标检测和目标跟踪的区别与联系