Node.js 在Angular应用程序的生产构建期间增加最大旧空间大小不起作用

Node.js 在Angular应用程序的生产构建期间增加最大旧空间大小不起作用,node.js,angular,Node.js,Angular,随着Angular项目的规模大幅增长,我不得不反复增加Node.JS分配的内存大小。不幸的是,即使使用max_old_space_size增加到8192mb以上,如下所示: node --max_old_space_size=8192 ./node_modules/@angular/cli/bin/ng build --source-map=false --prod && ng run SimpleWebTool:server:production 我发现了错误。不合理的是,它

随着Angular项目的规模大幅增长,我不得不反复增加Node.JS分配的内存大小。不幸的是,即使使用max_old_space_size增加到8192mb以上,如下所示:

node --max_old_space_size=8192 ./node_modules/@angular/cli/bin/ng build --source-map=false --prod && ng run SimpleWebTool:server:production
我发现了错误。不合理的是,它似乎没有尝试使用超过2GB的容量

chunk {2} polyfills-es2015.js (polyfills) 35.6 kB [initial] [rendered]
chunk {3} polyfills-es5.js (polyfills-es5) 128 kB [initial] [rendered]
chunk {0} runtime-es2015.js (runtime) 1.45 kB [entry] [rendered]
chunk {0} runtime-es5.js (runtime) 1.45 kB [entry] [rendered]
chunk {1} main-es2015.js (main) 12.9 MB [initial] [rendered]
chunk {1} main-es5.js (main) 13.6 MB [initial] [rendered]
chunk {4} styles.css (styles) 8.2 kB [initial] [rendered]
Date: 2020-03-02T04:35:57.079Z - Hash: bdeba447e288f4c17cef - Time: 2021216ms

<--- Last few GCs --->

[11208:000001C1C72F4BC0]    43868 ms: Mark-sweep 2034.6 (2079.5) -> 2033.6 (2063.3) MB, 121.4 / 0.0 ms  (+ 359.0 ms in 80 steps since start of marking, biggest step 6.9 ms, walltime since start of marking 495 ms) (average mu = 0.122, current mu = 0.030) f[11208:000001C1C72F4BC0]    44692 ms: Mark-sweep 2039.1 (2063.3) -> 2037.9 (2067.8) MB, 420.2 / 0.0 ms  (+ 387.7 ms in 87 steps since start of marking, biggest step 8.3 ms, walltime since start of marking 824 ms) (average mu = 0.062, current mu = 0.020) a

<--- JS stacktrace --->

==== JS stack trace =========================================

    0: ExitFrame [pc: 00007FF702D2463D]
Security context: 0x0129bab408a1 <JSObject>
    1: scan [000001437CE73D51] [C:\Users\User\Desktop\SimpleWebTool\node_modules\typescript\lib\typescript.js:~7985] [pc=00000385E6A656AA](this=0x0277dd7a8379 <Object map = 00000304A3035541>)
    2: parseTokenNode(aka parseTokenNode) [00000277DD792899] [C:\Users\User\Desktop\SimpleWebTool\node_modules\typescript\lib\typescript.js:~18140] [pc=00000385E68DF6...

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
 1: 00007FF70215232F napi_wrap+124543
 2: 00007FF7020F36A6 v8::base::CPU::has_sse+34502
 3: 00007FF7020F4366 v8::base::CPU::has_sse+37766
 4: 00007FF7028F8C5E v8::Isolate::ReportExternalAllocationLimitReached+94
 5: 00007FF7028E0CA1 v8::SharedArrayBuffer::Externalize+833
 6: 00007FF7027AE56C v8::internal::Heap::EphemeronKeyWriteBarrierFromCode+1436
 7: 00007FF7027B9910 v8::internal::Heap::ProtectUnprotectedMemoryChunks+1312
 8: 00007FF7027B6444 v8::internal::Heap::PageFlagsAreConsistent+3204
 9: 00007FF7027ABCD3 v8::internal::Heap::CollectGarbage+1283
10: 00007FF7027B2404 v8::internal::Heap::GlobalSizeOfObjects+212
11: 00007FF7027E8AEB v8::internal::StackGuard::HandleInterrupts+907
12: 00007FF7025391F9 v8::internal::interpreter::JumpTableTargetOffsets::iterator::operator=+10121
13: 00007FF702D2463D v8::internal::SetupIsolateDelegate::SetupHeap+567949
14: 00000385E6A656AA
npm ERR! code ELIFECYCLE
npm ERR! errno 134
npm ERR!
chunk{2}polyfills-es2015.js(polyfills)35.6KB[首字母][呈现]
区块{3}polyfills-es5.js(polyfills-es5)128 kB[首字母][呈现]
chunk{0}runtime-es2015.js(runtime)1.45 kB[输入][呈现]
chunk{0}runtime-es5.js(运行时)1.45 kB[输入][呈现]
chunk{1}main-es2015.js(main)12.9 MB[首字母][呈现]
chunk{1}main-es5.js(main)13.6MB[首字母][呈现]
chunk{4}styles.css(样式)8.2kb[首字母][呈现]
日期:2020-03-02T04:35:57.079Z-哈希:bdeba447e288f4c17cef-时间:2021216ms
[11208:000001C1C72F4BC0]43868毫秒:标记扫描2034.6(2079.5)->2033.6(2063.3)MB,121.4/0.0毫秒(+359.0毫秒,自标记开始以来的80个步骤,最大步骤6.9毫秒,自标记开始以来的壁时间495毫秒)(平均mu=0.122,当前mu=0.030)f[11208:000001C1C72F4BC0]44692毫秒:标记扫描2039.1(2063.3)->2037.9(2067.8)MB,420.2/0.0毫秒(+387.7毫秒,自标记开始后87个步骤,最大步骤8.3毫秒,自标记开始后的壁时间824毫秒)(平均mu=0.062,当前mu=0.020)a
==JS堆栈跟踪=========================================
0:ExitFrame[pc:00007FF702D2463D]
安全上下文:0x0129bab408a1
1:扫描[000001437CE73D51][C:\Users\User\Desktop\SimpleWebTool\node\u modules\typescript\lib\typescript.js:~7985][pc=00000385E6A656AA](此=0x0277dd7a8379)
2:parseTokenNode(又称parseTokenNode)[00000277DD792899][C:\Users\User\Desktop\SimpleWebTool\node\u modules\typescript\lib\typescript.js:~18140][pc=00000385E68DF6。。。
致命错误:无效的标记压缩接近堆限制分配失败-JavaScript堆内存不足
1:00007FF70215232F napi_包装+124543
2:00007FF7020F36A6 v8::base::CPU::has_sse+34502
3:00007FF7020F4366 v8::base::CPU::has_sse+37766
4:00007FF7028F8C5E v8::隔离::报告外部分配限制达到+94
5:00007FF7028E0CA1 v8::SharedArrayBuffer::外部化+833
6:00007FF7027AE56C v8::内部::堆::EphemeronKeyWriteBarrierFromCode+1436
7:00007FF7027B9910 v8::内部::堆::ProtectUnprotectedMemoryChunks+1312
8:00007FF7027B6444 v8::internal::Heap::PageFlagsAreConsistent+3204
9:00007FF7027ABCD3 v8::内部::堆::收集垃圾+1283
10:00007FF7027B2404 v8::内部::堆::GlobalSizeOfObjects+212
11:00007FF7027E8AEB v8::内部::StackGuard::HandleInterrupts+907
12:00007FF7025391F9 v8::内部::解释器::JumpTableTargetOffsets::迭代器::运算符=+10121
13:00007FF702D2463D v8::内部::SetupIsolateDelegate::SetupHeap+567949
14:00000385E6A656AA
npm错误!代码错误周期
npm错误!错误号134
npm错误!

我的项目正在使用相同的方法来处理javascript内存问题。据我所知,节点10与上述解决方案配合得很好。

如果您在没有
的情况下运行命令并运行&ng run SimpleWebTool:server:production
会发生什么?您的节点版本是什么?运行node v.12.14.1我尝试使用package.j降级到节点10但儿子遇到了同样的问题。