[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 を走らせる感じかな。