SPA (Single Page Application) を書いていると、いちいちブラウザをリロードするのが面倒で、かつ js を minify してページをリロードするといった面倒な手間を出来れば何も設定せずにやりたい(もしくは微量な設定だけでやりたい)、という思いから goemon
というツールを書きました。
mattn/goemon - GitHub
https://github.com/mattn/goemon
goemon は、コマンドラインツールとして使います。まず
$ goemon -g > goemon.yml
で goemon.yml
を生成します。個人的にカスタマイズしたい人は生成されたファイルを変更して使って下さい。
# Generated by goemon -g
livereload: :35730
tasks:
- match: './assets/*.js'
commands:
- minifyjs -m -i ${GOEMON_TARGET_FILE} > ${GOEMON_TARGET_DIR}/${GOEMON_TARGET_NAME}.min.js
- :livereload /
- match: './assets/*.css'
commands:
- :livereload /
- match: './assets/*.html'
commands:
- :livereload /
- match: '*.go'
commands:
- go build
- :restart
- :livereload /
$ goemon ./foo
で foo
が起動します。サーバを起動するコマンドを渡す事になります。デフォルトの設定だと以下の様に動作します。
assets/*.js
が変更されたら同じディレクトリに minify した js(拡張子:.min.js
) を生成し、/
を livereload (自動再読み込み)する。assets/*.html
やassets/*.css
が変更されたら/
を livereload する。*.go
が変更されたらgo build
してアプリを再起動(引数を再実行)した後、/
を livereload する。
つまりは開発者はエディタで編集するだけでブラウザ勝手にリロードしてウマーーー!という想定
別に golang だけのツールという訳では無いので、ruby や node/io.js 等でも使えます。ワイルカードパターンには **/*.js
という複数ディレクトリ階層のワイルドカードも使えます。もちろんですが、Windows でも動作します。詳しくは README を参照下さい。
goemon で使える便利なパターンやコマンドがあれば、ぜひ pull-request して下さい。