Language/javascript

[TIL] 배포 전 build 시, Javacript Heap Out Of Memory Error 해결

도잎 2022. 11. 8. 20:03
반응형

프로젝트를 개발을 진행하며, 프론트쪽 배포는 주로 내가 담당했는데 배포 전 build 상황에서 문제가 생겼다. 메모리가 부족하다..? 프로젝트 파일 안에 svg 파일이 많아서 그런 것 같았다. 일단 이 문제를 해결하기 위해 에러를 검색해보니 Heap 메모리가 부족해서 발생한 것이라고 한다. 그래서 Heap 메모리를 늘려주면 된다고 하는데 방법은 생각보다 간단했다.

에러 로그

Creating an optimized production build...

<--- Last few GCs --->

[1559:0x59136f0]   162161 ms: Mark-sweep 2002.1 (2090.7) -> 1994.4 (2084.8) MB, 2587.5 / 0.1 ms  (average mu = 0.160, current mu = 0.050) allocation failure scavenge might not succeed
[1559:0x59136f0]   164767 ms: Mark-sweep 2017.1 (2091.5) -> 1997.1 (2088.2) MB, 2136.3 / 0.1 ms  (average mu = 0.170, current mu = 0.180) allocation failure scavenge might not succeed


<--- JS stacktrace --->

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
 1: 0xb09c10 node::Abort() [node]
 2: 0xa1c193 node::FatalError(char const*, char const*) [node]
 3: 0xcf8dde v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [node]
 4: 0xcf9157 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [node]
 5: 0xeb09f5  [node]
 6: 0xeb14d6  [node]
 7: 0xebf9fe  [node]
 8: 0xec0440 v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [node]
 9: 0xec33be v8::internal::Heap::AllocateRawWithRetryOrFailSlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [node]
10: 0xe848fa v8::internal::Factory::NewFillerObject(int, bool, v8::internal::AllocationType, v8::internal::AllocationOrigin) [node]
11: 0x11fd646 v8::internal::Runtime_AllocateInYoungGeneration(int, unsigned long*, v8::internal::Isolate*) [node]
12: 0x15f20b9  [node]

 

문제 해결 방법

터미널을 열고 아래와 같이 작성한 후 enter를 치면되는데 NODE_OPTIONS으로 메모리의 크기를 늘려주면 된다고 한다. 아래와 같이 설정했는데도 같은 에러가 발생하면 메모리의 size를 더 많이 늘려주면 된다.

$ export NODE_OPTIONS=--max_old_space_size=7000

 

반응형