🆘
トラブルシューティングの備忘録
トラブルシューティングの備忘録
FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory
EC2インスタンスにおいてvueのbuildをして
FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory
でこけたときのメモ。
ビルドコマンドを以下のように変更する
"build": "NODE_OPTIONS='--max-old-space-size=4096' vue-cli-service build --mode production",
このコマンドによって、単純にbuildしている時に使用しているメモリの上限を上げることができる
swap容量を増やす。
sudo su
dd if=/dev/zero of=/swapfile bs=1M count=1024
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
をして増やす。
ただ注意点としては、追加で実行する際にはswapfile名に気を付ける。同じ名前で実行すると意味もなく使用できる容量が減っていくように見える。
上書きされた容量を取り戻す方法があるのかは不明。。。
以下確認コマンド
swapon --show
free
error:0308010C
このエラーは主にdev環境で起きる。nodeのバージョンがおかしいらしいので、その対応をする必要がある。
Dockerファイルに
ENV NODE_OPTIONS="--openssl-legacy-provider"
を記載して、
"build": "NODE_OPTIONS='--max-old-space-size=4096 --openssl-legacy-provider' vue-cli-service build --mode production",
とすれば基本的には問題ないはず。
ちなみに、本番環境では、nodeをダウンロードしたタイミング(buildしたタイミング)が古いので、基本的には起きないはず。
Discussion