Gruntについて最新の気持ち
Posted: Updated:
思いつき
だいぶ前からGrunt周りというかGruntそのものへの関心が薄れゆくなか、タスク周りがやたらと充実してきたエコシステムの恩恵を、ただただ享受するにとどまっている。
業務で700行のGruntfile.js
を見かけて、SAN値をもっていかれた折に前々から感じていた疑念が表に出た。
「これ、Gruntに仕事させすぎじゃないの」
分担してもよいのでは
前述の700行のなかには、ファイルのビルドをはじめとして、ユニットテスト、E2Eテスト、ドキュメント生成、ローカルサーバー、LiveReload etc etc etc ...すべてひとつのファイルに入っていた。
(; ⁰⊖⁰) Oh...
いまいち感覚的なトコロなので表現しづらいのだが、役割としてあまりにGruntfileで表現している内容がごった煮すぎるように思う。
自分の場合、テスト周りはtestem
にしていて、ドキュメント生成系はpackage.json
のscriptsにコマンドで定義している。ローカルサーバーとかLiveReload周りは、WebStormのLiveEditで済んでいるから設定していない。
とにかく、Gruntが汎用タスクランナーであることは承知の上で、中でもビルドタスクのみに専念させるようにしている。
設定の見通しがイマイチ
ビルドに専念させたとしても、各タスクの設定が独立性が高い&冗長なため「あるタスクで作ったこのファイルを、別のタスクでアレする」という流れについて、コード的に見通しが良くないという問題が残る。
その点、gulp
のほうがStreamを軸としてコードベースで記述できるので、わりとマシな見た目でストレスも少なそうだった。今のところはタスクの充実度からgruntを使っているが、gulpも今後に期待したい。
ツール乱立の地獄
別件として
.bowerrc .csscombrc .csslintrc .editorconfig .jshintrc bower.json package.json Gruntfile.js 地獄だ...( ⁰⊖⁰)
— あほむ (@ahomu) February 11, 2014
という話もあるが、それは別問題とさせていただきたい。
設定を分割するとか
それもアリだと思う。
個人の経験としては、当時configとtaskのオートローダーを添えてしっかり分割した結果「こんなに仕事させるべきツールだっけ?」という疑問に至ってしまった。
結果、1ファイルで200-300行くらいにおさまる仕事量を目安にgruntとお付き合いを続けている。全体としては、結果的に今のほうがシンプルにまとまっていると思う。
個人の感想
です。
感覚には個人差があります。
現場からは以上です。