JavaScript在角度2中堆内存不足
Posted
技术标签:
【中文标题】JavaScript在角度2中堆内存不足【英文标题】:JavaScript heap out of memory in angular 2 【发布时间】:2018-01-01 12:53:23 【问题描述】:我正在使用 Angular CLI。请检查我的 CLI 信息
@angular/cli: 1.2.1
node: 6.10.0
os: win32 x64
@angular/animations: 4.1.1
@angular/common: 4.0.0
@angular/compiler: 4.0.0
@angular/compiler-cli: 4.0.0
@angular/core: 4.0.0
@angular/forms: 4.0.0
@angular/http: 4.0.0
@angular/platform-browser: 4.0.0
@angular/platform-browser-dynamic: 4.0.0
@angular/router: 4.1.1
当我使用ng serve --aot
时,我收到以下错误。
最近几次 GC
893427 毫秒:标记扫描 1344.1 (1434.3) -> 1339.9 (1434.3) MB,925.7 / 0.0 ms [分配失败] [请求旧空间中的 GC]。 894468 毫秒:标记扫描 1339.9 (1434.3) -> 1339.9 (1434.3) MB,1040.5 / 0.0 毫秒 [分配失败] [请求旧空间中的 GC]。 895402 毫秒: 标记扫描 1339.9 (1434.3) -> 1339.6 (1418.3) MB, 933.7 / 0.0 ms [最后 度假村 gc]。 896331 毫秒:标记扫描 1339.6 (1418.3) -> 1339.8 (1418.3) MB,928.1 / 0.0 ms [最后的 gc]。
JS 堆栈跟踪
安全上下文:000001AF8A2CFB61 2: /* 匿名 */ [C:\project_folder\node_modules\source-map\lib\source-node.js:100] [pc=0000016E99866533](这=00000346870554E1,映射=000003C18FDC93C9) 3:参数适配器框架:3->1 4:InnerArrayForEach(aka InnerArrayForEach) [native array.j...
致命错误:CALL_AND_RETRY_LAST 分配失败 - javascript 堆 内存不足
【问题讨论】:
我认为设置--max_old_space_size
应该可以帮助你也看到这个线程github.com/angular/angular-cli/issues/5618
还有:***.com/questions/41955769/…, ***.com/questions/41517738/…
我都试过了。但我仍然遇到同样的错误。请帮忙!!!
【参考方案1】:
如果 Angular 应用程序的编译大小变得更大,则会出现此问题。请增加可以解决问题的节点内存。 (默认节点ram内存为1600mb,增加到3200左右)
【讨论】:
【参考方案2】:对于 Angular 7,我增加了 angular.json 文件中为预算分配的最大内存。
"budgets": [
"type": "initial",
"maximumWarning": "2mb",
"maximumError": "11mb"
]
然后运行以下命令:
node --max_old_space_size=10500 'node_modules/@angular/cli/bin/ng' build --prod
在你的情况下,你应该尝试运行这个:
node --max_old_space_size=10500 'node_modules/@angular/cli/bin/ng' serve --aot
【讨论】:
【参考方案3】:我有同样的问题 在我的 tsconfig.json 我有
“包括”:[ “**/*” ],
删除此包含后,ng 构建再次正常
【讨论】:
【参考方案4】:尝试修改文件并将其内容替换为以下内容:(在文件夹中:node_modules\bin)
修改ng.cmd:
@IF EXIST "%~dp0\node.exe" (
"%~dp0\node.exe" --max_old_space_size=5048 "%~dp0\..\angular-cli\bin\ng" %*
) ELSE (
@SETLOCAL
@SET PATHEXT=%PATHEXT:;.JS;=;%
node --max_old_space_size=5048 "%~dp0\..\angular-cli\bin\ng" %*
)
修改ngc.cmd:
@IF EXIST "%~dp0\node.exe" (
"%~dp0\node.exe" --max_old_space_size=5048 "%~dp0\..\@angular\compiler-cli\src\main.js" %*
) ELSE (
@SETLOCAL
@SET PATHEXT=%PATHEXT:;.JS;=;%
node --max_old_space_size=5048 "%~dp0\..\@angular\compiler-cli\src\main.js" %*
)
【讨论】:
它无法正常工作..更改后出现同样的错误 将 package.json 中的所有 ^ 替换为 ~ .Duplicate of ***.com/questions/46071399/…以上是关于JavaScript在角度2中堆内存不足的主要内容,如果未能解决你的问题,请参考以下文章