Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Receiving javascript heap out of memory when building Microsoft CodePush

I only receive this error when building a CodePush release.

$appcenter codepush release-react -a APPNAME.com/APPNAME-ios -d Production --mandatory --output-dir ./build -t 1.x.x;

transform[stderr]: FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
transform[stderr]: 
transform[stderr]: Writing Node.js report to file: report.20191010.093411.22661.001.json
transform[stderr]: Node.js report completed
transform[stderr]:  1: 0x100062df2 node::Abort() [/usr/local/bin/node]
transform[stderr]:  2: 0x1000634eb node::OnFatalError(char const*, char const*) [/usr/local/bin/node]
transform[stderr]:  3: 0x1001aeda7 v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [/usr/local/bin/node]
transform[stderr]:  4: 0x1001aed44 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [/usr/local/bin/node]
transform[stderr]:  5: 0x1005b5bd2 v8::internal::Heap::FatalProcessOutOfMemory(char const*) [/usr/local/bin/node]
transform[stderr]:  6: 0x1005b8103 v8::internal::Heap::CheckIneffectiveMarkCompact(unsigned long, double) [/usr/local/bin/node]
transform[stderr]:  7: 0x1005b4638 v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags) [/usr/local/bin/node]
transform[stderr]:  8: 0x1005b27f5 v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [/usr/local/bin/node]
transform[stderr]:  9: 0x1005bf09c v8::internal::Heap::AllocateRawWithLightRetry(int, v8::internal::AllocationSpace, v8::internal::AllocationAlignment) [/usr/local/bin/node]
transform[stderr]: 10: 0x1005bf11f v8::internal::Heap::AllocateRawWithRetryOrFail(int, v8::internal::AllocationSpace, v8::internal::AllocationAlignment) [/usr/local/bin/node]
transform[stderr]: 11: 0x10058e314 v8::internal::Factory::NewFillerObject(int, bool, v8::internal::AllocationSpace) [/usr/local/bin/node]
transform[stderr]: 12: 0x100840c54 v8::internal::Runtime_AllocateInNewSpace(int, v8::internal::Object**, v8::internal::Isolate*) [/usr/local/bin/node]
transform[stderr]: 13: 0x23da4894fc7d

How can I tell AppCenter to use max_old_space_size=8192 ?

like image 476
TIMEX Avatar asked Oct 28 '25 00:10

TIMEX


2 Answers

this illustrates a solution to your issue.

On Android, add the following to the project's build.gradle file:

project.ext.react = [
nodeExecutableAndArgs: ["node", "--max_old_space_size=8192"]
]

On iOS, in Xcode, select your target and go to the Build Phases tab, in the section Bundle React Native code and images, add the flag to the shell script:

export NODE_BINARY="'node --max_old_space_size=8192'
../node_modules/react-native/packager/react-native-xcode.sh"

Hope this Helps!

like image 71
Abdeen Avatar answered Oct 30 '25 16:10

Abdeen


Add these to your scripts and then run them in order.

"setup-fix-memory-limit": "npm install -g increase-memory-limit",
"fix-memory-limit": "cross-env LIMIT=4096 increase-memory-limit",

Change the number in the second script to what ever you want.

npm run setup-fix-memory-limit
npm run fix-memory-limit

Also make sure to look at if it can be solved in another way, perhaps some incorrect imports are dramatically increasing the size of your bundle, use a bundle analyzer to see if what's in the build should be their, or if anything can be trimmed.

like image 36
rich green Avatar answered Oct 30 '25 16:10

rich green