🔥
RailsにHot Reloadを追加する Hotwire-Sparkを導入する
Hotwireのチーム内に作成されている、ホットリロードを追加するHotwire-SparkをRailsに導入して動きを見てみます
導入
導入としてはシンプルで、Gemfileに以下のように記述するだけです。
group :development do
gem 'hotwire-spark'
end
あとは rails server
にフックして起動するのでserverを起動した状態でViewファイル等を保存するとActionCableで接続されたWebSocket経由で最新のhtmlやjs、cssなどが配信されます。
25年1月14日現在ではrails serverを起動していないとenabledの条件を満たさないので起動出来ないですが将来的には単独で起動することができるようになるかもしれません
また、例えばViewComponentなどを利用している場合は app/components
を監視対象のディレクトリにいれると問題なく動作すると思います(未確認)
config/environments/development.rb
config.hotwire.spark.html_paths += %w[ app/components ]
その他のオプションに関しては以下があるので必要に応じて柔軟に対応出来そうです。
その他の気づき
内部的にファイル監視をどうやって行っているのだろうと思っていたのですがGuardのlisten gemを利用しているようでした。
フルスタックフレームワークとしてRailsが発展してきたからこそ、依存関係を増やしすぎず機能拡張できるのはさすがだなと思いました。
Discussion