【问题标题】:FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory error致命错误:CALL_AND_RETRY_LAST 分配失败 - JavaScript 堆内存不足错误
【发布时间】: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

【问题讨论】:

标签: javascript node.js angular memory-leaks build


【解决方案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://stackoverflow.com/a/57782016/1948482

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

      猜你喜欢
      • 2016-12-19
      • 1970-01-01
      • 2018-09-25
      • 1970-01-01
      • 1970-01-01
      • 2019-12-17
      • 1970-01-01
      • 1970-01-01
      • 2014-11-23
      相关资源
      最近更新 更多