Warm tip: This article is reproduced from serverfault.com, please click

node.js-Angular-cli'JavaScript堆内存不足'进行资产优化

(node.js - Angular-cli 'JavaScript heap out of memory' on asset optimization)

发布于 2017-01-07 04:21:01

我正在Angular-cli项目中创建传单 map。由于 map图块是栅格 map,因此它们会本地存储在“资产”文件夹中。问题是,当我具有许多缩放级别的 map时,我拥有超过28万张图像,其大小约为1.1 GB,并且会变得更大。

当我使用ng serve这里是控制台输出(卡住@资产优化):

** NG Live Development Server is running on http://localhost:4200. **
25234ms building modules
69ms sealing
0ms optimizing
0ms basic module optimization
96ms module optimization
1ms advanced module optimization
16ms basic chunk optimization
0ms chunk optimization
1ms advanced chunk optimization
0ms module and chunk tree optimization
179ms module reviving
9ms module order optimization
4ms module id optimization
6ms chunk reviving
23ms chunk order optimization
36ms chunk id optimization
61ms hashing
1ms module assets processing
149ms chunk assets processing
4ms additional chunk assets processing
0ms recording
1ms additional asset processing
2693ms chunk asset optimization
 94% asset optimization
<--- Last few GCs --->

  119106 ms: Mark-sweep 1333.6 (1409.7) -> 1333.6 (1415.7) MB, 1402.0 / 2.1 ms [allocation failure] [GC in old space requested].
  120570 ms: Mark-sweep 1333.6 (1415.7) -> 1333.6 (1427.7) MB, 1464.2 / 2.2 ms [allocation failure] [GC in old space requested].
  122079 ms: Mark-sweep 1333.6 (1427.7) -> 1340.0 (1409.7) MB, 1508.1 / 2.5 ms [last resort gc].
  123749 ms: Mark-sweep 1340.0 (1409.7) -> 1346.3 (1409.7) MB, 1670.2 / 2.1 ms [last resort gc].


<--- JS stacktrace --->

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

Security context: 000001AA792CFB61 <JS Object>
    1: inflight [C:\Workspace\node_modules\inflight\inflight.js:~7] [pc=00000202BF9894B7] (this=000001AA792E6661 <JS Global Object>,key=00000045863E5881 <Strin
g[90]\: lstat\x00C:/Workspace/src/assets/leafletmap_files/9/42/176.png>,cb=00000045863E5839 <JS Function lstatcb_ (SharedFunctionInfo 00000253E9EFC219
)>)
    2: wrapper [C:\Workspace\...

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory

我尝试使用: node --max_old_space_size=8192 --optimize_for_size --max_executable_size=4096 --stack_size=4096,但没有任何区别。

1-还有其他方法可以避免优化所有资产文件夹吗?是否是我所认为的问题的根源,因为该项目在添加更多的传单图块图像之前运行顺利。

2-是否有解决此问题的解决方法?

更新:Angular-cli存储库中 有一个与此问题相关的未解决问题。

Questioner
Ahmed Hashem
Viewed
11
Vinod Kumar Ravuri 2017-12-15 14:33:56

将以下行添加到Package.json

"aot": "node --max-old-space-size=8192 ./node_modules/@angular/cli/bin/ng 
build --prod --aot"

并尝试使用“ npm run aot”运行。

它为我工作。