致命错误:CALL_AND_RETRY_LAST 分配失败 - JavaScript 堆内存不足错误

5 javascript memory-leaks build node.js angular

当我运行ng build --prod时出现此错误

92% 区块资源优化 <--- 最后几次 GC --->

[4136:0155D210] 443646 毫秒:标记-扫描 703.5 (770.3) -> 703.6 (759.8) MB,2162.2 / 0.0 毫秒(+ 0.0 毫秒,自标记开始后的 0 步,最大的 3 步,标记墙时间 216 毫秒以来。 ms) 请求旧空间中的最后手段 GC [4136:0155D210] 445794 毫秒:标记扫描 703.6 (759.8) -> 703.5 (759.8) MB,2147.8 / 0.0 毫秒请求旧空间中的最后手段 GC

<--- JS 堆栈跟踪 --->

==== JS 堆栈跟踪 ==========================================

安全上下文:0369632D 1: create(this=036856A9) 2: _walk [034841A1 :~764] [pc=1CCAED1F](this=3A11A619 ,visitor=3BCEFD7D) 3: /*8anonymous */ [0934] [034841A1 :~764] [pc=1CCAED1F] =1D3728E3](this=3A11BCBD) 4: _walk [034841A1 :~968] [pc=1CCC1F3B](this=3A11BCBD

致命错误:CALL_AND_RETRY_LAST 分配失败 - JavaScript 堆内存不足 1:node_module_register 2:v8::internal::Factory::NewStruct 3:v8::internal::Factory::NewPrototypeInfo

我尝试了一切。我减少了变量的使用并检查了内存泄漏并在 ts 文件中减少了回调。

我无法弄清楚该怎么做。我尝试使用'npm i increase-memory-limit'增加节点内存并将限制增加到2GB

我使用的是 angular 4。节点版本是 8.9.4

cre*_*lee 6

尝试导航到您的项目/node_modules 并运行以下命令:

node --max_old_space_size=5048 "%~dp0\..\@angular\cli\bin\ng" build --aot --prod
Run Code Online (Sandbox Code Playgroud)

如果你想让你的生活更轻松,你可以在你的package.json文件中插入:

"scripts": {
   "build-prod": "node --max_old_space_size=5048 ./node_modules/@angular/cli/bin/ng build --prod"
}
Run Code Online (Sandbox Code Playgroud)

那么你现在要做的就是运行npm run build-prod


小智 -1

我在构建 JS 应用程序时遇到了同样的问题,结果发现节点模块可以消耗的内存是有限的。

只需使用这个 npm 包就可以解决这个问题:https://www.npmjs.com/package/increase-memory-limit