Javascript 堆内存不足

标签 javascript angular

我在为 Angular 页面使用 npm start 时遇到以下错误。

C:\TPO\Client\Angular>ng serve
Your global Angular CLI version (1.3.2) is greater than your local
version (1.0.4). The local Angular CLI version is used.

To disable this warning use "ng set --global warnings.versionMismatch=false".
** NG Live Development Server is listening on localhost:4200, open your browser on http://localhost:4200 **
10% building modules 4/4 modules 0 active
<--- Last few GCs --->

  118169 ms: Mark-sweep 1348.4 (1404.3) -> 1348.1 (1404.3) MB, 1338.9 / 0.0 ms [allocation failure] [GC in old space requested].
  119374 ms: Mark-sweep 1348.1 (1404.3) -> 1348.1 (1404.3) MB, 1204.7 / 0.0 ms [allocation failure] [GC in old space requested].
  121097 ms: Mark-sweep 1348.1 (1404.3) -> 1362.7 (1403.3) MB, 1723.2 / 0.0 ms [last resort gc].
  122416 ms: Mark-sweep 1362.7 (1403.3) -> 1377.4 (1403.3) MB, 1317.9 / 0.0 ms [last resort gc].


<--- JS stacktrace --->

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

Security context: 0000034B7C13FA99 <JS Object>
    1: set [native collection.js:~252] [pc=00000174AF1BC2E1] (this=000003AD36FBC469 <a Map with map 0000002CF18113B1>,r=000002D7A3418CD9 <String[12]: 32741,580445>,z=1)
    2: /* anonymous */ [C:\TPO\Client\Angular\node_modules\typescript\lib\typescript.js:~2177] [pc=00000174ADC9EBD0] (this=000001D0EA536CE1 <JS Global Object>,value=1,key=000002D7A3418CD9 <String[12]: 32741,580445>)
    3: arg...

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

最佳答案

除非您的应用程序有问题,否则解决问题的最简单方法(如 this answer 所建议)是增加 node.js 的堆大小

在 Windows 上,这可以通过导航到

C:\Users\your_user_name\%AppData%\Roaming\npm

然后在其中编辑您的 ng.cmd:

@IF EXIST "%~dp0\node.exe" (
  "%~dp0\node.exe" --max_old_space_size=4096 "%~dp0\node_modules\@angular\cli\bin\ng" %*
) ELSE (
  @SETLOCAL
  @SET PATHEXT=%PATHEXT:;.JS;=;%
  node --max_old_space_size=4096 "%~dp0\node_modules\@angular\cli\bin\ng" %*
)

--max_old_space_size=4096 将节点的 V8 引擎的堆大小设置为以 MB 为单位的相应值(在我们的例子中是 4096,但您可能可以根据工作站的能力对其进行微调) 而不是默认值 1400 MB

关于Javascript 堆内存不足,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46000149/

相关文章:

javascript - 按 "snake"顺序合并两个数组

javascript - 在 Kendo UI Mobile 中扩展移动 View ?

javascript - 获取 flexbox 行的高度

angular - 让我的 Accordion 动态响应?

Angular 6 和 RxJS 6 重大变化

javascript - 修改与 Angular 异步管道 react 方式一起使用的流中的数据

javascript - 多个 .html 页面上的持续动画

javascript - jQuery onChange 为输入提供一个值

angular - 类型 'pipe' Angular 6 上不存在属性 'void'

Angular Router - 为什么需要应用程序根目录和 Bootstrap ?