弊社ではフロントエンドWeb開発にGruntやBowerを活用しています。
GruntやBowerを使い、TypeScriptやSASSのコンパイル、ローカルサーバでの動作確認が出来るように設定しています。
ただ、Gruntの設定ファイルを目的に応じて一から作るにはだいぶ時間がかかってしまいます。ここの解決策には、基本になるテンプレートプロジェクトを持っておきそのプロジェクトをコピーして次のプロジェクトとして使う方法があります。弊社でもわかめさんが個人で作っています。
この路線を更に拡張して、目的に応じて使用する技術(LESSやCoffeeScriptなど)を変えたプロジェクトを生成できる仕組みがあります。これが今回紹介するyeomanです。
この記事では以下の環境を想定しています。
$ node -v //=> v0.10.26
$ npm -v //=> 1.4.3
例えばAngularJSを使ったプロジェクトを始めたいとします。この時の手順は以下の通りです。
$ npm install -g yo
$ npm install -g generator-angular
$ mkdir myproject && cd $_ && yo angular
$npm install
やbower install
が自動で実行されてファイルが生成されていきます。上記の手順を実行後、ディレクトリ内を見てみるとGruntfile.jsができていることがわかります。この状態で$grunt
と実行するとSASSのコンパイルやconcatやminify、unit testが走ります。また、$grunt serve
と実行するとローカルサーバが立ち上がり、自動でブラウザ上に表示されます。ここまでのGruntfile.jsを個人で組み立てるのはだいぶ時間がかかるものです。
更に進んだyeomanの使い方としてsub-generatorがあります。Railsで言うと新しいコントローラやモデルをコマンドラインから生成する機能です。たとえば上で使ったプロジェクトにおいて、
$yo angular:route blog
$grunt serve
の順でコマンドを実行してから http://127.0.0.1:9000/#/blog を開くと新しく追加したblogViewが見えることでしょう。generator-angularには他にも、
といったsub-generatorが用意されています。この一覧は変わる可能性があるのでここで最新のsub-generatorの一覧を確認してください。
現時点(2014/2/28)で491のgeneratorがあります。ざっとみた感じ、firefoxosやphonegap用のgeneratorもあるのでこういったプロジェクトも始めやすいのかなあと思います。
みなさんもyeomanを使ってWeb開発をもっと楽にしていきましょう。