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

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"}
}

相关文章:

  • 【LeetCode】螺旋矩阵
  • LeetCode热题100--53.最大子数组和--中等
  • 前端在平常的开发中高度还原ui图的思考规范
  • 婴幼儿托育实训室生活照料流程标准化设计
  • 第三部分:赋予网页灵魂 —— JavaScript(下)
  • 味精(谷氨酸钠)是否健康(马井堂)
  • ESP32通过MQTT协议上传数据至阿里云物联网平台
  • NS-SWIFT微调Qwen3
  • CF4C Registration system(哈希实现)
  • AnimateCC基础教学:漫天繁星-由DeepSeek辅助完成
  • day31 第八章 贪心算法 part05
  • 生活需要一些思考
  • ppt箭头素材图片大全
  • 如何提升自我价值?
  • std::string的底层实现 (详解)
  • [4-06-09].第10节:自动配置- 分析@SpringBootApplication启动类
  • 防爆风扇储能轴流风机风量风压如何保障通风安全?
  • java每日精进 4.29【框架之自动记录日志并插入如数据库流程分析】
  • Lucene 分词工具全解析与对比指南
  • Spring AI在大模型领域的趋势场景题深度解析
  • 违规行为屡禁不止、责任边界模糊不清,法治日报:洞穴探险,谁为安全事故买单?
  • 这座“蚌埠住了”的城市不仅会接流量,也在努力成为文旅实力派
  • 释新闻|西葡大停电为何规模大、恢复慢?可再生能源是罪魁祸首?
  • 打工人的“小长假模式”,已经迫不及待地开启了
  • 新一届中国女排亮相,奥运冠军龚翔宇担任队长
  • 【社论】优化限购限行,激发汽车消费潜能