loadTasks()を使ってGruntのタスク設定を行うと、タスクごとに設定ファイルを別に管理できる。

How to structure your Grunt tasksというloadTasks()を使ってGruntの設定を別ファイルに分割するアイディアについての記事を読んだ。「なんだまた変なプラグインか」という感じで読み始めたら、良い意味で裏切られた。

GruntのloadTasks()は特定のディレクトリにあるカスタムGruntプラグインを一気に読み込むもので、自分で書いたNode.jsパッケージ化していないGruntプラグインを読み込むために使うもの。上記記事ではこれが指定ディレクトリ以下にあるファイルを単にJavaScriptファイルとして一気に読み込んでくれることを利用して、タスクごとに分割した設定ファイルの読み込みに使っている。

普通にGruntfile.jsに設定を書く場合と違い、プラグインごとに設定をまとめる必要がない。そのためあるタスクの設定を変えようとした場合、そのタスクの設定だけがまとまっているファイルを開いて編集すれば良く、効率的かつ直観的な運用が行えることと思う。ただし、利用するGruntプラグインを他でも利用している場合を考慮する必要があるため、設定をマージするための煩雑なコードが必要になる欠点がある。他にもタスク設定ごとにloadNpmTask()するのは面倒に感じるかもしれない(僕はむしろそう書きたかったので、気にならなかった)。

コードとして煩雑な面があるが、メリットの方が多いと感じた。プライベートなプロジェクトで使ってみたけど、設定を書くというよりも作業に必要なGruntプラグインをロードして使うNode.jsスクリプトを書くような形になるので、今のところかなりやりやすいという感想。