6
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

goemonでMojolicious::Liteでの開発速度を加速させてみる

Last updated at Posted at 2015-02-25

眠いんでメモ程度に。そのうちちゃんと書き直すかも。

Big Sky :: 開発速度を加速するツール、goemon を書いた。

Github::mattn/goemon

こいつは学習コスト低くて良さげだぜってことで、普段簡単なアプリを作る時に愛用してるMojolicious::Liteで使ってみた。

今回はMojolicious使ったけど、同じノリで他のFWでも他言語でも使える感じが良い。


ファイルの配置

いつも通りの作業ディレクトリ下で$ goemon -g > goemon.ymlを実行してとりあえず設定ファイルを作成しておく。

作業ディレクトリ以下
├── goemon.yml
├── myapp.pl
└── public
    ├── test.css
    ├── test.html
    └── test.js

goemon.ymlの記述

  1. 各所を静的ファイルの置き場所を./assets/からMojoliciousで使う./publicに変える。
  2. *jsについてはどうもデフォルトで生成されるminifyコマンドだと*.min.jsまでminifyしようとして無限にファイルが増殖しちゃうので、苦肉の策でifを使う感じに。(githubじゃ未完成っつってるけど:jsminでも一応動きそう。)
  3. myapp.pl更新時に再起動&ライブリロードしてくれるように記述。
goemon.yml
livereload: :35730
tasks:
- match: './public/*.js'
  commands:
  - 'if ! expr ${GOEMON_TARGET_FILE} : ".*\.min\.js" > /dev/null; then  minifyjs -m -i ${GOEMON_TARGET_FILE} > ${GOEMON_TARGET_DIR}/${GOEMON_TARGET_NAME}.min.js; fi'
  - :livereload /
- match: './public/*.css'
  commands:
  - :livereload /
- match: './public/*.html'
  commands:
  - :livereload /
- match: '*.pl'
  commands:
  - :restart
  - :livereload /

HTMLのヘッダにライブリロード用の記述を加える

静的なhtmlファイルとかmyapp.plで作るhtmlタグとかに追加しておく。

<script src="http://localhost:35730/livereload.js"></script>

起動

要するに$ goemon [いつものコマンド]で良い。

Mojolicious::Liteの場合は$ ./myapp.pl daemonでサーバ起動なので・・・

$ goemon ./myapp.pl daemon
GOEMON 2015/02/26 00:50:02 goemon.go:380: starting command [./myapp.pl daemon]
GOEMON 2015/02/26 00:50:02 goemon.go:351: loading /Users/*****/goemontest/goemon.yml
GOEMON 2015/02/26 00:50:02 goemon.go:262: goemon loaded /Users/*****/goemontest/goemon.yml
GOEMON 2015/02/26 00:50:02 goemon.go:368: starting livereload
[Thu Feb 26 00:50:03 2015] [info] Listening at "http://*:3000"
Server available at http://127.0.0.1:3000

各種ファイルを書き換えてみる

CSSファイル

例えばCSS何かを書き換えて保存すると、ライブリロードが走りブラウザ側も勝手に再読み込みしてくれる。便利!

GOEMON 2015/02/26 00:53:04 goemon.go:153: "/Users/*****/goemontest/public/test.css": CHMOD
GOEMON 2015/02/26 00:53:04 goemon.go:162: reloading /

JSファイル

jsだったら保存時にminifyもしてくれる。便利!!

GOEMON 2015/02/26 00:59:55 goemon.go:153: "/Users/*****/goemontest/public/test.min.js": CHMOD
GOEMON 2015/02/26 00:59:55 goemon.go:200: executing if ! expr /Users/*****/goemontest/public/test.min.js : ".*\.min\.js" > /dev/null; then  minifyjs -m -i /Users/*****/goemontest/public/test.min.js > /Users/*****/goemontest/public/test.min.min.js; fi
GOEMON 2015/02/26 00:59:55 goemon.go:162: reloading /
$ ls public/
test.css	test.html	test.js		test.min.js

plファイル

myapp.plだったら保存時にプロセス再起動してくれる。便利!!!

GOEMON 2015/02/26 00:57:03 goemon.go:153: "/Users/*****/goemontest/myapp.pl": RENAME
GOEMON 2015/02/26 00:57:03 goemon.go:387: restarting command
GOEMON 2015/02/26 00:57:03 goemon.go:111: os: process already finished
[Thu Feb 26 00:57:04 2015] [info] Listening at "http://*:3000"
Server available at http://127.0.0.1:3000
GOEMON 2015/02/26 00:57:08 goemon.go:162: reloading /

学習コスト低くてそれほど戸惑う要素もないし、記述も簡単で応用も効きそうな感じが良い!

補足版書いた

goemonでMojolicious::Liteでの開発速度を加速してみた - そんな今日この頃でして、、、

6
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?