2月18日、ライブラリを複数のモジュールにして疎結合にしようと作業を続けてきたGruntチームはJavascriptタスクランナーであるGruntのバージョンを0.4.0にした。
チームの中心メンバであるTyler Kellen氏は0.4.0で“Gruntをばらばらにする”ことで、Gruntを拡張可能でメンテナンス可能なソリューションの基盤にしたいと考えていたという。チームはビルドインのタスクとコマンドラインツールをプロジェクトの依存物としてpackage.jsonファイルで保持することで、中核部分からプラグインリポジトリまでのエコシステム全体に注目が集まることを望んでいる。“出来るだけモジュール化することに注力しています”と氏はいう。“多くの強力なユーティリティを開発しました。今やその力は現実の世界で証明されています。それらを小さなライブラリに分割する作業をしています”
このようにコードベースを小さく分割するのは、このチームが標榜するUnixの思想に馴染む。Unixの思想はさまざまな形で表明されている。
- タスクを繋げる “Gruntは‘エイリアス’のタスクを簡単に作り、任意の数の通常のタスクを実行できる”とKellenは言う。
- プラグインリポジトリの成長。数百のプラグインが利用できる中、“Jon SchlinkertがGruntを使ってJekyllのような静的サイトジェネレータ[assemble]を作っています。これはとても野心的な試みです”とKellenはいう。
- 共通のインターフェース。タスクが連結可能で共通のAPIがあるので、“Gruntは文法チェックや連結、最小化、テスト、バージョン設定などを行うための胸中のインターフェースを提供するので簡単に利用を始められます”
開発者向けの使い難いツールに業を煮やした、Gruntの生みの親であるBen Alman氏が2012年3月に代替となるツールとしてGruntを構想した、とKellenは言う。“どうやら開発者コミュニティの賛同を得られたようで、毎月60,000を超えるダウンロードが行われており、ダウンロードは安定的に増えています”
ダウンロードしている開発者では“jQueryのユーザが最も多いと思います。GoogleはYeomanとAngularJSで利用していますし、AdobeとTwitterもいくつかのプロジェクトで使っています。LESSもGruntへ移行している最中です。”とKellenは言う。
Gruntのテストでの利用は注目に値する。“特定のCIプロバイダと協業してはいないものの、Gruntでテストスイートで実行し、テストが失敗するとGruntは正しい終了コードを出力して処理を終えます。私たちはGruntとTravisCIを使って40を超えるリポジトリのノードユニットテストを実施しています。この中にはgrunt-contribのプラグインや関連するライブラリも含まれます”とKellenは言う。
成熟に伴い、Gruntは継続してモジュール化を推進するつもりだ、とKellenは言う。“複雑なファイル構造のシステムをスタンドアロンのnpmパッケージにするつもりです。また、node-taskと呼ばれるプラグインのフォーマットにも大規模な設計上のアップデートを行うべく作業を進めています.”