运行 ng build --prod
时出现此错误92%的块资产优化< ---最后几个GC --->
[4136:0155D210] 443646 ms:标记扫描703.5(770.3) - > 703.6(759.8) MB,2162.2 / 0.0 ms(自标记开始以0步开始+ 0.0 ms, 最大步长0.0毫秒,自开始标记2163毫秒后的最长时间 在旧空间的GC求助[4136:0155D210] 445794 ms: 标记扫描703.6(759.8) - >最后703.5(759.8)MB,2147.8 / 0.0 ms 请求在旧空间使用GC
< --- JS stacktrace --->
==== JS堆栈跟踪======================================== =
安全上下文:0369632D 1:创建(这= 036856A9) 2:_walk [034841A1:~764] [pc = 1CCAED1F](这= 3A11A619,访客= 3BCEFD7D) 3:/ *匿名* / [034841A1:~969] [pc = 1D3728E3](这= 3A11BCBD) 4:_walk [034841A1:~968] [pc = 1CCC1F3B](这= 3A11BCBD
致命错误:CALL_AND_RETRY_LAST分配失败 - JavaScript堆 内存不足1:node_module_register 2: v8 :: internal :: Factory :: NewStruct 3: V8 ::内部::厂:: NewPrototypeInfo
我尝试了一切。我减少了变量的使用并检查了内存泄漏,并在ts文件中进行了非常少的回调。
我无法弄清楚如何做到这一点。我尝试使用&n; npm i增加内存限制' 来增加节点内存,并将限制增加到 2GB 。
我正在使用angular 4.节点版本是8.9.4
答案 0 :(得分:3)
尝试导航到 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
。
答案 1 :(得分:0)
一旦构建了一个JS应用程序,我遇到了同样的问题,结果发现节点模块可以使用的内存限制。
只需使用这个npm包就可以解决它:https://www.npmjs.com/package/increase-memory-limit
答案 2 :(得分:0)
您可能希望了解increase-memory-limit
如何增加引擎盖下的堆大小。
通常的方法如下:
node --max-old-space-size=8192 server.js
如果以某种方式修改ng build
命令,您可能需要尝试更多地增加限制。
答案 3 :(得分:0)
我在运行时遇到此错误
npm测试运行
对于临时情况,我们可以增加--max_old_space_size的限制
路径:node_modules/@yarnpkg/index.js
然后搜索--max_old_space_size,然后增加限制 但这是一个临时解决方案。
尝试这种方法,因为它似乎是永久解决方案- https://stackoverflow.com/a/57782016/1948482