GitHub - angular/angular-cli: CLI tool for Angular を使用してAngularアプリケーションの開発をしている中で CircleCIでテストなどをパスしたらこのアプリケーションをサーバーにデプロイみたいなことをしている。
# AoTコンパイルを使用してビルドする $ ./node_modules/@angular/cli/bin/ng build --progress=false --aot=true --prod
ただ最近アプリケーションが多くなってきてビルドする時間が長くなってきて下記のようなエラーが出るようになった
<--- Last few GCs ---> 504990 ms: Scavenge 1334.5 (1434.5) -> 1334.5 (1434.5) MB, 40.5 / 0 ms [allocation failure]. 505030 ms: Scavenge 1334.5 (1434.5) -> 1334.5 (1434.5) MB, 40.4 / 0 ms [allocation failure]. 505071 ms: Scavenge 1334.5 (1434.5) -> 1334.5 (1434.5) MB, 40.5 / 0 ms [allocation failure]. 505111 ms: Scavenge 1334.5 (1434.5) -> 1334.5 (1434.5) MB, 40.6 / 0 ms [allocation failure]. 505152 ms: Scavenge 1334.5 (1434.5) -> 1334.5 (1434.5) MB, 40.3 / 0 ms [allocation failure]. <--- JS stacktrace ---> Cannot get stack trace in GC. FATAL ERROR: Scavenger: semi-space copy Allocation failed - process out of memory
Your build hit the 4G memory limit - CircleCI
CircleCIには4G制限があって上記ドキュメントにも書いてあるがJavaの場合は
machine: environment: _JAVA_OPTIONS: "-Xms512m -Xmx1024m"
のようなものを追加して4Gをこえないようにするとのこと
nodeではどうするかというと
$ node --max_old_space_size=3036 ./node_modules/@angular/cli/bin/ng build --progress=false --aot=true --prod
out of memoryはおこさなくはなった