AngularJSジェネレータでコマンドを使ってみる

2013.09.12

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

YeomanとAngularジェネレータで手軽に環境構築

以前、ここ でYeomanとAnglarJSを使って簡単なサンプルを作ってみました。
あれからYeomanも1.0がリリースされましたし、改めてYeomanでAngularJSジェネレータを使用してみましょう。

環境構築方法

今回使用した動作環境は以下のとおりです。

  • OS : MacOS X 10.7.5
  • Node.js : v0.10.8

YeomanとAngularJS用ジェネレータをインストール

npmを使用して、yoモジュールをインストールしましょう。
以前はbowerとgruntもいっしょにインストールする必要があったような気がしますが、yoだけでよくなったみたいです。
また、AngularJS用にgenerator-angularをインストールします。

% npm install -g yo
% npm install -g generator-angular

ちなみに、yoコマンドをそのまま実行すると、対話式インターフェイスが起動します。
次のように、インストールされているジェネレータから選択したり、ジェネレータの検索やインストールを行うこともできます。
たぶんここが1.0の新しいところだったような気がする。

% yo

Yeoman is a mask worn by the following members of the open-source community:

  Paul Irish, Addy Osmani, Mickael Daniel, Sindre Sorhus, Eric Bidelman,
  Frederick Ros, Brian Ford, Pascal Hartig, Stephen Sawchuk, and countless
  other contributors.

[?] What would you like to do?
  Run the Angular generator (0.4.0)
  Run the Mocha generator (0.1.1)
  Run the Titanium generator (0.1.0)
  Run the Webapp generator (0.4.1)
  --------
  Update your generators
❯ Install a generator
  Find some help
  Get me out of here!

では、AngularJS用アプリのひな形を作成しましょう。
yoコマンドでひな形を生成したあと、bowerとnpmを使用してモジュールをインストールします。

% mkdir angularSample && cd angularSample
% yo angular 
% bower install && npm install

テストもそのまま実行可能です。

% grunt test
・
・                                                                                                                                           
Elapsed time
concurrent:test    2s
autoprefixer:dist  140ms
karma:unit         4s
Total              6s

grunt serverでアプリが起動します。ブラウザも自動で起動します。

% grunt server

AngularJSジェネレータのコマンドを実行

AngularJSジェネレータでは、ルートやコントローラ等、いろいろなモジュールを生成できます。
では、下記コマンドを実行し、ルートを生成しましょう。コントローラとビューが追加されます。

% yo angular:route myroute                                                                                                                              
   create     app/scripts/controllers/myroute.js
   create     test/spec/controllers/myroute.js
   ・
   ・

生成されたapp/scripts/myroute.jsを下記のように修正しましょう。

'use strict';

angular.module('angularSampleApp')
  .controller('MyrouteCtrl', function ($scope) {
        $scope.message = "MyRoute!!!";
        $scope.getMessage = function(){
            return $scope.message;
        }
  });

app/views/myroute.htmlを次のように記述して、http://localhost:9000/#/myrouteにアクセスしてみましょう。
そのまま記述した内容が反映されます。

<p>This is the myroute view.</p>

<div ng-controller="MyrouteCtrl">
    <p>{{getMessage()}}</p>
</div>

また、次のようにすればコントローラを単体で追加することもできます。

% yo angular:controller user
create app/scripts/controllers/user.js
create test/spec/controllers/user.js

他にも、Directive,Filter,view,service,Decoratorといった、
AngularJSで使用される各種モジュールがコマンドで追加可能です。
コマンドで各ひな形を追加して、生成されたソースに詳細処理を記述していくかんじですね。

参考サイトなど