[Grunt]自分でtaskを定義して使ってみよう
自分で定義したタスクを実行する
Gruntではさまざまなタスクがすでに用意されており、ビルドやデプロイ等の目的ですぐに使用できますが、 自分の実現したい機能が用意されていないことも、多々あります。 そんなときは自分でタスクを定義して使ってみましょう。
環境構築方法
今回使用した動作環境は以下のとおりです。
- OS : MacOS X 10.7.5
- Node.js : v0.10.8
- npm : 1.2.23
Gruntを使える状態にしておきましょう。
% npm install -g grunt-cli % mkdir grunt-sample % cd grunt-sample % npm init //すべてデフォルトでpackage.jsonを作成 % npm install grunt --save-dev
grunt.registerTaskでタスクを定義して実行する
まずはオリジナルのタスクを定義しましょう。tasksディレクトリを作成し、その中にmytask.jsファイルを作成します。
//tasks/mytask.js module.exports = function(grunt) { //タスクの定義 grunt.registerTask('mytask', 'my local task.', function() { var foo = grunt.config('mytask').foo; grunt.log.writeln('this is my local task.'); grunt.log.writeln('foo = ' + foo); }); };
タスクを定義するには、grunt.registerTask関数を使用します。第1引数にタスク名、第3引数に処理内容を記述します。 今回は「mytask」という名前のタスクを定義し、オプション(foo)の内容を出力します。 ※なお、registerTaskにはいろいろな使い方があるので、確認してみてください
では、mytaskを使ってみましょう。 Gruntfile.jsでgrunt.task.loadTasks関数を使用してmytaskタスクをロードします。 これでmytaskが使えるようになります。
//Gruntfile.js var grunt = require('grunt'); module.exports = function () { grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), mytask: {foo: 'bar'} }); grunt.task.loadTasks("tasks"); };
mytaskではfoo変数にbarという値を設定しています。 では、gruntコマンドでmytaskを実行してみましょう。メッセージとfoo変数の値が表示されます。
% grunt mytask Running "mytask" task this is my local task. foo = bar Done, without errors.
まとめ
カスタムタスクも作り方は簡単ですね。次回はカスタムタスクを発展させた、grunt pluginの作り方について紹介します。
参考サイトなど
- Grunt公式: http://gruntjs.com/
- Grunt日本語リファレンス: http://js.studio-kingdom.com/grunt/