Rails7で importmap-rails、jsbundling-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
ホットモジュールリロードやコードスプリットがなくても大丈夫な場合は、 jsbundling-railsへの切り替えを検討してください
Webpacker5からjsbundling-railsへの移行ガイド が作成されています。
RailsコアチームはWebpackerのv6をリリースしない予定
このリポジトリにある未発表のv6作品をベースにしたShakapackerという新しいgemでその開発ラインを継続中
v6がいつ出るのかと待っていたのですが、結局リリースされずに shakapacker という別gemになるようです。
今までたくさん苦しめられたWebpackerですが、お役御免となり引退となりました。
さよならWebpacker。