4

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
Suraj Rao
  • 29,388
  • 11
  • 94
  • 103
Pratyush Verma
  • 93
  • 1
  • 3
  • 11

2 Answers2

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

Kostiantyn
  • 1,856
  • 11
  • 13
0

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.

HelloWorld101
  • 3,878
  • 2
  • 34
  • 47