반응형
프로젝트를 개발을 진행하며, 프론트쪽 배포는 주로 내가 담당했는데 배포 전 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
반응형