[Middleman 3] Middleman と Grunt の役割分担を検討する
Grunt のファイルをまとめようと思ったら、Gruntfile が結構長いですね。
以下、実務で使ったファイルと比較しながら、探ってみるメモ。
“`prettyprinted
% middleman version
Middleman 3.3.6
“`
– Grunt で組み立てるとプロジェクトに柔軟に対応できる
– 設定が必要なので、結果、ファイルが冗長になってしまう。
Middleman で置き換えてみると Gruntfile も見通しが良くなるかもしれないと思い確認し始めたのが前回まで。
> * [Middleman: Asset Pipeline | deadwood](https://www.d-wood.com/blog/2014/10/14_7026.html)
> * [Middleman: Bower をつかってみる | deadwood](https://www.d-wood.com/blog/2014/05/23_6266.html)
## 役割を分担する
Middleman + Grunt という形になりそうなので、package.json を眺めてみます。
### Middleman
Middleman でまかなうとスッキリしますね。
– grunt-contrib-concat
– grunt-contrib-copy
– grunt-contrib-compress
– grunt-contrib-clean
このあたりもOK。
grunt-ect はテンプレートエンジン。
– grunt-contrib-sass
– grunt-contrib-compass
– grunt-ect
– grunt-contrib-coffee
minify, uglify もおまかせで。
– grunt-contrib-htmlmin
– grunt-contrib-cssmin
– grunt-contrib-uglify
サーバもOK。
– grunt-contrib-connect
– grunt-php
### Middleman or Grunt
もしくは別の手段をつかうということもあり得ますね。
> * [plasticine/middleman-imageoptim](https://github.com/plasticine/middleman-imageoptim)
> * [karlfreeman/middleman-deploy](https://github.com/karlfreeman/middleman-deploy)
– grunt-contrib-imagemin
– grunt-rsync
### Grunt
Grunt を使うとこの辺は必須。
– grunt
– grunt-contrib-watch
Bower ファイルのレイアウトを Grunt に任せるならば。
– grunt-bower-task
Lint 系は Grunt になりそう。
– grunt-contrib-csslint
– grunt-contrib-jshint
– grunt-htmlhint
– grunt-coffeelint
– grunt-jsonlint
出番がない感じですが、ドキュメント系も使うなら Grunt かな。
– grunt-contrib-yuidoc
– grunt-styleguide
## まとめ
– Middleman の規約に則ってタスクを組めば、Grunt 設定が不要になる部分も多そう。
– Lint 系だけ任せる方向で。
– `middleman build` 後に Lint 系の Grunt を走らせる感じかな。