致命错误:CALL_AND_RETRY_LAST 分配失败 - JavaScript 堆内存不足错误
Posted
技术标签:
【中文标题】致命错误:CALL_AND_RETRY_LAST 分配失败 - JavaScript 堆内存不足错误【英文标题】:FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory error 【发布时间】:2018-11-10 06:35:27 【问题描述】:当我运行 ng build --prod
时出现此错误92% 的块资产优化
[4136:0155D210] 443646 毫秒:标记扫描 703.5 (770.3) -> 703.6 (759.8) MB, 2162.2 / 0.0 ms(+ 0.0 ms,自打标开始后 0 步, 最大步长 0.0 ms,自标记开始以来的 walltime 2163 ms) last 请求旧空间中的度假村 GC [4136:0155D210] 445794 毫秒: 标记扫描 703.6 (759.8) -> 703.5 (759.8) MB, 2147.8 / 0.0 ms 最后 请求旧空间中的度假村 GC
==== JS 堆栈跟踪 ========================================== =
安全上下文:0369632D 1:创建(这=036856A9) 2: _walk [034841A1 :~764] [pc=1CCAED1F](this=3A11A619 ,visitor=3BCEFD7D ) 3: /* 匿名 */ [034841A1 :~969] [pc=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
【问题讨论】:
查看这个答案:***.com/questions/38558989/node-js-heap-out-of-memory/… 【参考方案1】:尝试导航到 yourproject/node_modules 并运行以下命令:
node --max_old_space_size=5048 "%~dp0\..\@angular\cli\bin\ng" build --aot --prod
如果您想让您的生活更轻松,您可以将其插入到您的 package.json
文件中:
"scripts":
"build-prod": "node --max_old_space_size=5048 ./node_modules/@angular/cli/bin/ng build --prod"
那么你现在要做的就是运行npm run build-prod
。
【讨论】:
谢谢!!有效。我没有将我的项目定向到节点模块。可能是其他答案和解决方案会奏效。谢谢大家!! 没问题。如果它解决了您的问题,请接受答案:) 我目前正在使用 nohup npm start &,如何替换为 npm run build-prod?【参考方案2】:您可能想看看 increase-memory-limit
如何在后台增加堆大小。
通常的方式如下:
node --max-old-space-size=8192 server.js
如果它以某种方式修改了ng build
命令,您可能需要尝试进一步增加限制。
【讨论】:
【参考方案3】:我在运行时遇到此错误
npm 测试运行
对于临时的,我们可以增加--max_old_space_size的限制
路径:node_modules/@yarnpkg/index.js
然后搜索 --max_old_space_size 然后增加限制 但这将是一个临时解决方案。
试试这个,因为它似乎是永久的解决方案-- https://***.com/a/57782016/1948482
【讨论】:
【参考方案4】:我在构建 JS 应用程序时遇到了同样的问题,结果发现节点模块可以消耗的内存是有限的。
只需使用这个 npm 包就可以为我解决它:https://www.npmjs.com/package/increase-memory-limit
【讨论】:
我已经使用了增加内存的方法。请阅读我的整个问题。 npmjs.com/package/increase-memory-limit,我去链接安装了,用它来增加内存以上是关于致命错误:CALL_AND_RETRY_LAST 分配失败 - JavaScript 堆内存不足错误的主要内容,如果未能解决你的问题,请参考以下文章
解决Vue编译和打包时频繁内存溢出情况CALL_AND_RETRY_LAST Allocation failed
vue项目编译时报错:FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
vue项目编译时报错:FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
CALL_AND_RETRY_LAST Allocation failed-JavaScript heap out of memory 1:00007FF78650DlBA v8
CALL_AND_RETRY_LAST Allocation failed-JavaScript heap out of memory 1:00007FF78650DlBA v8