Kemalで自動的にファイルの変更を検知してホットリロードする方法
プログラミング言語Crystal用のシンプルなWebfraemwork、Kemalを試しています。 その過程でコードの変更を自動で検知して再コンパイルして欲しくて方法を調べてみたのですが、いまいち公式(Crystal/Kemal)でそういった機能を見つけることが出来ませんでした。
そこで、Node.jsで動くnodemonを利用してみたら上手く言ったので備忘録として。
nodemonのインストール
私はYarnでインストールしました。
yarn global add nodemon
実行
後は、nodemon
経由でcrystalコマンドを実行するだけです。
[koji:hello_kemal]$ ~/.yarn/bin/nodemon --exec "crystal run" src/hello_kemal.cr
ファイルの変更検知は本当に即座に検知されます。 ただし、Kemal、というかCrystal自体がコンパイルがちょっと遅いので、大体3秒ぐらいで変更が反映されるかな、という感じです。
そもそも機能の修正なんかを実際にアクセスして動作確認する、というやり方じゃなくて、ユニットテスト(spec)ベースでゴリゴリ開発していくべきものなので、本当はホットリロードする必要は無いと思いますが、あくまでKemalの学習時にControllerの書き方とかを調べる際には楽ちんだな、という感じです。
公開日:2019/09/30