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 memory
 1: 00007FF60F407C4F v8::internal::CodeObjectRegistry::~CodeObjectRegistry+114207
 2: 00007FF60F395EC6 DSA_meth_get_flags+65542
 3: 00007FF60F396D7D node::OnFatalError+301
 4: 00007FF60FCCB6CE v8::Isolate::ReportExternalAllocationLimitReached+94
 5: 00007FF60FCB5CAD v8::SharedArrayBuffer::Externalize+781
 6: 00007FF60FB5907C v8::internal::Heap::EphemeronKeyWriteBarrierFromCode+1468
 7: 00007FF60FB65D29 v8::internal::Heap::PublishPendingAllocations+1129
 8: 00007FF60FB62CFA v8::internal::Heap::PageFlagsAreConsistent+2842
 9: 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"
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值