直接貼出報錯信息
<--- 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"}
}