⚡
Hotwire SparkでSlimファイルもホットリロード対象にする方法
はじめに
Hotwire Sparkは、Rails開発時にファイルの変更を検知して自動的にブラウザをリロードしてくれる便利なgemです。しかし、デフォルトではSlimファイル(.slim)は監視対象に含まれていません。
この記事では、Hotwire SparkでSlimファイルの変更も検知できるようにする設定方法を紹介します。
結論
config/environments/development.rb に以下の設定を追加するだけでOKです:
config.hotwire.spark.html_extensions += %w[ slim ]
具体的な設定手順
1. Gemfileに追加
まず、Gemfileのdevelopmentグループにhotwire-sparkを追加します:
group :development do
gem "web-console"
gem "hotwire-spark"
# その他の開発用gem
end
2. development.rbに設定を追加
config/environments/development.rbにSlim拡張子を監視対象に追加する設定を記述します:
require "active_support/core_ext/integer/time"
Rails.application.configure do
# Settings specified here will take precedence over those in config/application.rb.
# Slimファイルを監視対象に追加
config.hotwire.spark.html_extensions += %w[ slim ]
# その他の設定...
end
3. Railsサーバーを再起動
設定を反映させるため、Railsサーバーを再起動します。
これで、Slimファイルを編集すると自動的にブラウザがリロードされるようになります!
仕組みの解説
Hotwire Sparkには html_extensions という設定があり、HTMLコンテンツの変更を検出する拡張子のリストが定義されています。デフォルトでは以下のような拡張子が含まれています:
-
rb- Rubyファイル -
erb- ERBテンプレート
このリストに slim を追加することで、Slimファイルの変更もHTML変更として検知されるようになります。
補足:監視パスの追加
もし特定のディレクトリ配下のSlimファイルだけを監視したい場合は、html_paths も設定できます:
config.hotwire.spark.html_paths += %w[ app/views/shared ]
ただし、デフォルトで app/views は監視対象になっているため、通常は不要です。
注意点
- Railsのテンプレートキャッシュが有効になっている場合、変更が即座に反映されないことがあります
- 開発環境以外では不要な設定なので、必ず
development.rbに記述しましょう
まとめ
Hotwire SparkでSlimファイルをホットリロード対象にするには、以下の1行を追加するだけです:
config.hotwire.spark.html_extensions += %w[ slim ]
これで、Slimを使った快適なRails開発環境が実現できます。ぜひお試しください!
Discussion