最近、開発端末をMacBook Pro M1 Maxに乗り換えたところ、webpackのコンパイルが極端に遅くなりました。 思えばwebpack3のままメンテナンスを怠っていたので、これを機にwebpack4にアップグレードすることになりました。
Webpackerをv3からv5にアップグレードする
Webpackerを安定バージョンのv5にアップデートします
現状のwebpacker、webpackのバージョンは以下のとおりです。
webpacker (3.5.5) → webpacker (5.4.3) webpack(3.12.0) → webpack(4.46.0)
これをwebpack4に対応しているバージョンまで上げたいと思います。
Gemfile
bundle update webpacker
Gemfile.lock
webpacker (3.5.5) → webpacker (5.4.3)
webpackerを再インストール
アップデートが完了したらwebpackerを再インストールします。
bundle exec rails webpacker:install
ファイル単位で上書きするかどうか聞かれます。一旦全て上書きしてから後ほど必要な箇所だけ変更すると良いでしょう。
私の環境ではreactを使用していますので、以下も実行します
bundle exec rails webpacker:install:react
babelとpostcssの設定ファイルを整理
インストールすると以下のように設定ファイルが置き換わります。
.babelrc .postcssrc.yml
上記ファイルは新しくbabel.config.js
とpostcss.config.js
に置き換える必要があるので削除しましょう。
babel.config.js
とpostcss.config.js
の設定内容はほとんどの場合、デフォルトのままで問題ないと思います。
babelの各種設定内容を理解したい方は、以下の記事が参考になりますので一読しておくと良いでしょう。
アップグレード作業完了
基本的なアップグレードはこれで完了です。Webpackerを使用していると簡単にwebpack周りをアップグレードすることができます。
残りはプロジェクトごとの個別考慮をして、動作確認をすれば終了です。
私の場合、プロジェクトで使用しているNPMライブラリの依存関係でエラーやワーニングが発生したので、それぞれ適切なバージョンにアップグレードしました。
無事アップグレードが完了し、m1 mac環境でのwebpackビルドも元通り高速になりました。