
WSL2でNode.jsプロジェクトをビルド時にJavaScript heap out of memoryが発生した場合
- 日本語
- WSL2
- JavaScript
- Node.js
発生したエラーメッセージ
Node.jsプロジェクトをビルド時に発生した。
FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory
現在の状態を確認
以下コマンドを実行して確認する。
node -e 'console.log(v8.getHeapStatistics().heap_size_limit/(1024*1024))'
この結果よりも多く割り当てる必要がある。
--max-old-space-size を設定
以下のコマンドで設定する。
export NODE_OPTIONS="--max-old-space-size=8192"
8192 に設定した。確認コマンドで値が上書きされていることを確認する。
ターミナルを再起動すると、また最初の設定に戻ってしまうため、 .bashrc か .zshrc に上記コマンドを記述して恒常化すると毎回設定する手間が省ける。
ちなみに、今回は 8GB にしたかったので 8192 としたが、他にも値を変更出来る。
| メモリ | 設定値 |
|---|---|
5GB | export NODE_OPTIONS="--max-old-space-size=5120" |
6GB | export NODE_OPTIONS="--max-old-space-size=6144" |
7GB | export NODE_OPTIONS="--max-old-space-size=7168" |
8GB | export NODE_OPTIONS="--max-old-space-size=8192" |
つまり、 export NODE_OPTIONS="--max-old-space-size=(X * 1024)" の X が設定したいメモリとなる。