首页 > 解决方案 > 致命错误:CALL_AND_RETRY_LAST 分配失败 - JavaScript 堆内存不足构建 Angular 应用程序

问题描述

我正在使用 VS Code(带有 Nrwl nx 扩展)来构建 Angular 应用程序。我最初的“服务”有效,但是一旦我做出更改并重建项目,我就开始崩溃,并出现稍后显示的错误堆栈。我必须退出 VS Code,重新启动 VS Code,然后在问题再次发生之前我可以(准确地)获得一份服务。

我在这里阅读了几个问题以及 Github #13734,因此添加了一个 Windows(系统)环境变量 NODE_OPTIONS 设置为 --max-old-space-size=8096。(我以前使用 Node 默认值成功运行过)。我还尝试修改脚本以执行如下所示的操作。

我已经看到有关此错误可能是由垃圾收集失败引起的建议,但由于这发生在构建(“服务”)中,我无法实施建议的步骤来“强制调用 GC”。

以下是因素:

Windows 10
VS Code         1.61.2
node            14.18.1
"@angular/compiler-cli": "^12.2.4",
"@nrwl/angular": "^12.8.0",
"@nrwl/cli": "12.8.0",
package.json:
  "scripts": {
    "ng": "node --max_old_space_size=8192 ./node_modules/.bin/ng",
    "start": "node --max_old_space_size=8192 nx serve",
    "build": "node --max_old_space_size=8192 ./node_modules/@angular/cli/bin/ng build",
    "build-prod": "node --max_old_space_size=8192 ./node_modules/@angular/cli/bin/ng build --prod",
    "test": "nx test",
    "postinstall": "ngcc --properties es2015 browser module main"
  },

npx nx 服务我的应用程序 --poll=2000 --progress

这是错误:

Compiled successfully.
Generating browser application bundles (phase: sealing)...
<--- Last few GCs --->

[2460:00000103CF2FF160]  3313350 ms: Mark-sweep (reduce) 1970.1 (2005.5) -> 1969.3 (2005.8) MB, 643.9 / 0.1 ms  (average mu = 0.831, current mu = 0.000) last resort GC in old space requested
[2460:00000103CF2FF160]  3314028 ms: Mark-sweep (reduce) 1969.3 (2004.8) -> 1968.2 (2005.5) MB, 677.9 / 0.1 ms  (average mu = 0.690, current mu = 0.000) last resort GC in old space requested


<--- JS stacktrace --->

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
 1: 00007FF6F3B6412F napi_wrap+133311
 2: 00007FF6F3AFDD06 SSL_get_quiet_shutdown+63062
 3: 00007FF6F3AFEB9D node::OnFatalError+301
 4: 00007FF6F43E19CE v8::Isolate::ReportExternalAllocationLimitReached+94
 5: 00007FF6F43C67BD v8::SharedArrayBuffer::Externalize+781
 6: 00007FF6F426FFCC v8::internal::Heap::EphemeronKeyWriteBarrierFromCode+1516
 7: 00007FF6F426B3C1 v8::internal::Heap::AllocateExternalBackingStore+1601
 8: 00007FF6F4285155 v8::internal::GCIdleTimeHandler::ShouldDoContextDisposalMarkCompact+1029
 9: 00007FF6F42855A5 v8::internal::Factory::AllocateRaw+37
10: 00007FF6F4299C1F v8::internal::FactoryBase<v8::internal::Factory>::NewRawTwoByteString+79
11: 00007FF6F408D2B9 v8::internal::String::SlowFlatten+441
12: 00007FF6F3F3BE20 unibrow::Utf8::EncodeOneByte+656
13: 00007FF6F43ED456 v8::String::Utf8Length+22
14: 00007FF6F3B1DA67 v8::internal::Malloced::operator delete+21831
15: 00007FF6F438E9CF v8::internal::Builtins::builtin_handle+322591
16: 00007FF6F438DF64 v8::internal::Builtins::builtin_handle+319924
17: 00007FF6F438E258 v8::internal::Builtins::builtin_handle+320680
18: 00007FF6F438E0A3 v8::internal::Builtins::builtin_handle+320243
19: 00007FF6F446CEDD v8::internal::SetupIsolateDelegate::SetupHeap+474477
20: 00007FF6F4402FC2 v8::internal::SetupIsolateDelegate::SetupHeap+40530
21: 00007FF6F4402FC2 v8::internal::SetupIsolateDelegate::SetupHeap+40530
22: 00007FF6F4402FC2 v8::internal::SetupIsolateDelegate::SetupHeap+40530
23: 00007FF6F4402FC2 v8::internal::SetupIsolateDelegate::SetupHeap+40530
24: 00007FF6F4402FC2 v8::internal::SetupIsolateDelegate::SetupHeap+40530
25: 00007FF6F4402FC2 v8::internal::SetupIsolateDelegate::SetupHeap+40530
26: 00007FF6F4402FC2 v8::internal::SetupIsolateDelegate::SetupHeap+40530
27: 00007FF6F4402FC2 v8::internal::SetupIsolateDelegate::SetupHeap+40530
28: 00007FF6F4402FC2 v8::internal::SetupIsolateDelegate::SetupHeap+40530
29: 00007FF6F4402FC2 v8::internal::SetupIsolateDelegate::SetupHeap+40530
30: 00007FF6F4402FC2 v8::internal::SetupIsolateDelegate::SetupHeap+40530
31: 00007FF6F4402FC2 v8::internal::SetupIsolateDelegate::SetupHeap+40530
32: 00007FF6F4402FC2 v8::internal::SetupIsolateDelegate::SetupHeap+40530
33: 00007FF6F43FCBF9 v8::internal::SetupIsolateDelegate::SetupHeap+14985
34: 00007FF6F4402FC2 v8::internal::SetupIsolateDelegate::SetupHeap+40530
35: 00007FF6F4402FC2 v8::internal::SetupIsolateDelegate::SetupHeap+40530
36: 00007FF6F4402FC2 v8::internal::SetupIsolateDelegate::SetupHeap+40530
37: 00007FF6F4400C7E v8::internal::SetupIsolateDelegate::SetupHeap+31502
38: 00007FF6F440086C v8::internal::SetupIsolateDelegate::SetupHeap+30460
39: 00007FF6F42D09D2 v8::internal::Execution::CallWasm+1650
40: 00007FF6F42D023F v8::internal::Execution::Call+191
41: 00007FF6F43BBB97 v8::Function::Call+615
42: 00007FF6F3B90D1B node::CallbackScope::~CallbackScope+1723
43: 00007FF6F3B91181 node::MakeCallback+209
44: 00007FF6F3B51900 napi_wrap+57488
45: 00007FF6F3BB6328 uv_check_init+120
46: 00007FF6F3BC0F18 uv_run+664
47: 00007FF6F3AB8A45 v8::internal::AsmJsScanner::GetIdentifierString+51749
48: 00007FF6F3B31227 node::Start+311
49: 00007FF6F398685C RC4_options+339804
50: 00007FF6F49414F8 v8::internal::compiler::RepresentationChanger::Uint32OverflowOperatorFor+14424
51: 00007FFAB4FB7034 BaseThreadInitThunk+20
52: 00007FFAB5D62651 RtlUserThreadStart+33

谢谢你。

标签: node.jsgarbage-collectionangular-cliheap-memoryangular-devkit

解决方案


推荐阅读