Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

npm build gives "Ineffective mark-compacts near heap limit Allocation failed"

I have a reactjs/typescript project, running on windows 10. Im trying to build by ts-scripts with

"rimraf ../wwwroot/* && react-scripts-ts build && copyfiles ./build/**/* ../wwwroot/ -u 1

This has worked ok before, but when I removed the node_modules-folder, re-run the npm install-command and then the command above I get the error message

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory

I have no idea why. After googling Ive seen

NODE_OPTIONS="–max-old-space-size=2048" but I dont know where to put this

Full error message

Last few GCs

[11376:0000024682F49880]    60039 ms: Mark-sweep 2034.1 (2085.2) -> 2033.7 (2085.2) MB, 1029.4 / 0.0 ms  (average mu = 0.073, current mu = 0.006) allocation failure scavenge might not succeed [11376:0000024682F49880]    61094 ms: Mark-sweep 2034.4 (2085.2) -> 2034.1 (2085.7) MB, 1047.7 / 0.0 ms  (average mu = 0.039, current mu = 0.007) allocation failure scavenge might not succeed    JS stacktrace  ==== JS stack trace =========================================      0: ExitFrame [pc: 000001CDF84DC5C1] Security context: 0x007044b9e6e1 <JSObject>     1: bindChildrenWorker(aka bindChildrenWorker) [000001AD1C0ACD59] [C:\Users\robcar\source\repos\Boost\Boost.Web\ClientApp\node_modules\typescript\lib\typescript.js:~27657] [pc=000001CDF8FA47CA](this=0x03da79d826f1 <undefined>,node=0x034b8724ab71 <NodeObject map = 000000660468F931>)     2: bind(aka bind) [000001AD1C0AE2D9] [C:\Users\robcar\source\repos\B...  FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory  1: 00007FF6B5EA121A v8::internal::GCIdleTimeHandler::GCIdleTimeHandler+4810  2: 00007FF6B5E7A5B6 node::MakeCallback+4518  3: 00007FF6B5E7AFA0 node_module_register+2160  4: 00007FF6B610B3EE v8::internal::FatalProcessOutOfMemory+846  5: 00007FF6B610B31F v8::internal::FatalProcessOutOfMemory+639  6: 00007FF6B6649304 v8::internal::Heap::MaxHeapGrowingFactor+11476  7: 00007FF6B663FA67 v8::internal::ScavengeJob::operator=+25543  8: 00007FF6B663DFDC v8::internal::ScavengeJob::operator=+18748  9: 00007FF6B6646F57 v8::internal::Heap::MaxHeapGrowingFactor+2343 10: 00007FF6B6646FD6 v8::internal::Heap::MaxHeapGrowingFactor+2470 11: 00007FF6B61E9DD7 v8::internal::Factory::NewFillerObject+55 12: 00007FF6B6281ABA v8::internal::WasmJs::Install+29530 13: 000001CDF84DC5C1 
like image 288
Cowborg Avatar asked May 29 '19 06:05

Cowborg


People also ask

How do I fix reached heap limit allocation failed JavaScript heap out of memory?

To fix JavaScript heap out of memory error, you need to add the --max-old-space-size option when running your npm command. Alternatively, you can also set the memory limit for your entire environment using a configuration file.

How increase JavaScript heap size?

JavaScript heap out of memory - how to increase the max memory for Node with max_old_space_size. If you want to increase the max memory for Node you can use --max_old_space_size option. You should set this with NODE_OPTIONS environment variable.

What is JavaScript heap out of memory?

js project is the “JavaScript heap out of memory” error. This error usually occurs when the default memory allocated by your system to Node. js is not enough to run a large project. The error is common whether you run your project on Windows, macOS, or a Linux distribution like Ubuntu.


2 Answers

I had a similar issue, although on a Mac computer. Setting an environment variable did the trick for me. That way, your node process will take the value and use it independently of which script you're running.

export NODE_OPTIONS=--max_old_space_size=4096 

The run your command again. Good Luck!

like image 176
eespejel Avatar answered Sep 21 '22 20:09

eespejel


The solution which I used was to upgrade the node js version from v10 to v12.


The command export NODE_OPTIONS=--max_old_space_size=4096 works but has limitations, e.g. you should have ample memory on your machine to run the production build.

like image 40
Onen simon Avatar answered Sep 24 '22 20:09

Onen simon