最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

angular - Javascript heap out of memory - Stack Overflow

programmeradmin1浏览0评论

I am getting the following error while using npm start for my angular pages.

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

I am getting the following error while using npm start for my angular pages.

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
Share Improve this question edited Sep 1, 2017 at 12:19 Suraj Rao 29.6k11 gold badges95 silver badges104 bronze badges asked Sep 1, 2017 at 12:17 Pratyush VermaPratyush Verma 831 gold badge3 silver badges11 bronze badges 2
  • Have you had a look to stackoverflow./questions/45322901/… ? Maybe that could helps you – Mister Q Commented Sep 1, 2017 at 12:25
  • I love you. It worked. I wasted an entire day on this. – Pratyush Verma Commented Sep 1, 2017 at 12:36
Add a ment  | 

2 Answers 2

Reset to default 5

Unless there is something wrong with your application, the simplest way to get rid of the problem (as suggested by this answer) is to increase heap size for node.js

On Windows this can be done by navigating to

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

and then editing your ng.cmd in there:

@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" %*
)

The --max_old_space_size=4096 sets the heap size for node's V8 engine to corresponding value in MBs (in our case this is 4096, but probably you may fine-tune it depending on your workstation's capabilities) instead of default value of 1400 MB

This question showed up when I was looking to solve the Javascript heap out of memory error while building my Next.js project.

Therefore, adding a more generic answer for those that stumble across here.

I solved the error by adding NODE_OPTIONS='--max-old-space-size=4096' to the build script in package.json as shown in the following example.

{
  "scripts": {
    "build": "NODE_OPTIONS='--max-old-space-size=4096' next build"
  }
}

It increases the Node.js heap size. For me 4096 was enough but please adjust it as per your project needs.

发布评论

评论列表(0)

  1. 暂无评论