さよならWebpacker

Rails7で importmap-railsjsbundling-rails という新しいフロントエンドの仕組みが取り入れられました。
 
ここでは詳細は省きますが、以下の3つの技術的な背景があり、これまで利用してきたWebpackerを利用する必要がなくなっていました。

  • ES6 : IEのサポートが終了。ES6が主要ブラウザでサポートされるようになり、トランスパイルが不要。
  • HTTP2 : 多数のファイルをブラウザで受信してもパフォーマンスへの影響は大きくなった。そのため、JSをバンドルする必要がない。
  • import maps : importするモジュールの名前解決する仕組みが策定。chrome系でサポートされ、他のブラウザもshimで利用できる。

突然のさよなら

その日は近い将来やってくるだろうと思っていましたが、

rails commit log流し読み(2022/01/21) - なるようになるブログ を見ていると、

Adds webpacker retired note to the webpacker guide [ci skip]

rails guideのWebpackerの修正です。

guideの先頭にWebpackerは開発終了になった旨説明を追加しています。

との記述が。

github

githubを見ると

ホットモジュールリロードやコードスプリットがなくても大丈夫な場合は、
jsbundling-railsへの切り替えを検討してください

Webpacker5からjsbundling-railsへの移行ガイド が作成されています。

RailsコアチームはWebpackerのv6をリリースしない予定
このリポジトリにある未発表のv6作品をベースにしたShakapackerという新しいgemでその開発ラインを継続中

v6がいつ出るのかと待っていたのですが、結局リリースされずに shakapacker という別gemになるようです。

今までたくさん苦しめられたWebpackerですが、お役御免となり引退となりました。
さよならWebpacker。