grunt.task
外部タスクの登録、実行、ロードを行います。 更に詳しく知りたければ、 task lib source と task util lib を確認してみてください。
- grunt.task.registerTask
- grunt.task.registerMultiTask
- grunt.task.renameTask
- grunt.task.loadTasks
- grunt.task.loadNpmTasks
- grunt.task.run
- grunt.task.clearQueue
- grunt.task.normalizeMultiTaskFiles
タスクの実行中、Gruntは多くのタスク固有の汎用プロパティとメソッドを、タスク関数内から
this
オブジェクトを通してアクセス可能にします。
これらのプロパティとメソッドの一覧を確認したければ、
Inside tasksガイドを
参照してください。
多くの汎用プロパティとメソッドは、タスク内からthis
オブジェクトを通して利用可能です。
雪だるま付き(☃)のメソッドは、grunt
オブジェクトからも利用可能です。
gruntのページで使用方法を確認してみてください。
grunt.task.registerTask ☃
"alias task"または、タスク関数を登録します。 このメソッドは下記の2つの特徴(使い方)をサポートします。
Alias task
タスク一覧が指定された場合、新しいタスクが1つ以上の他のタスクのエイリアスになります。
この"alias task"が実行される度に、taskList
に指定された各タスクが指定された順に実行されます。
taskList
引数は、タスクの配列でなければなりません。
grunt.task.registerTask(taskName, taskList)
この例では、"jshint"、"qunit"、"concat"、"uglify"による、"default"エイリアスタスクを定義しており、 Gruntの実行時に他のタスクが指定されなければ、自動的にこれらが実行されます。
task.registerTask('default', ['jshint', 'qunit', 'concat', 'uglify']);
タスクの引数も同様に指定できます。 この例のエイリアス"dist"は、"concat"と"uglify"タスクにそれぞれ"dist"引数を指定して実行します。
task.registerTask('dist', ['concat:dist', 'uglify:dist']);
Function task
もし、description
とtaskFunction
が渡されると、
指定された関数が、タスクが実行される度に呼び出されるようになります。
更に、指定されたdescriptionは、grunt --help
が実行されると表示されるようになります。
指定されたタスクのプロパティとメソッドは、タスク関数内からthis
オブジェクトの
プロパティとして利用可能です。
タスク関数は、false
を返すことで、そのタスクが失敗した事を指し示すことが出来ます。
下記のgrunt.task.registerMultiTask
メソッドは、"マルチタスク"と呼ばれる特別なタスクを
定義する際に使用されることに注意してください。
grunt.task.registerTask(taskName, description, taskFunction)
例として、Gruntでgrunt foo:testing:123
と実行すれば、foo, testing 123
が
ログ出力されます。もし、引数なしでgrunt foo
で実行すれば、foo, no args
がログ出力されます。
grunt.task.registerTask('foo', 'A sample task that logs stuff.', function(arg1, arg2) {
if (arguments.length === 0) {
grunt.log.writeln(this.name + ", no args");
} else {
grunt.log.writeln(this.name + ", " + arg1 + " " + arg2);
}
});
タスクとエイリアスタスクの更に詳しい情報を知りたい場合は、 タスクの作成を参照してください。
このメソッドは、grunt.registerTask
でも利用可能です。
grunt.task.registerMultiTask ☃
"マルチタスク"を登録します。
マルチタスクはターゲットが指定されない場合、そのサブプロパティ(別名:ターゲット)として
暗黙のうちに繰り返し処理されるタスクです。
デフォルトのプロパティとメソッドに加えて、マルチタスク固有のプロパティは、
this
オブジェクトのプロパティとして、タスク、関数の内部で利用可能です。
多くのcontribタスクは、 jshint task、 concat task、 uglify task を含んだマルチタスクです。
grunt.task.registerMultiTask(taskName, description, taskFunction)
特定の設定が与えられると、例としてgrunt log:foo
と実行すれば、foo:1,2,3
をログ出力し、
また、grunt bar:bar
と実行すればbar: hello world
をログ出力します。
ただし、grunt log
と実行すると、foo: 1,2,3
、bar: hello world
、
baz: false
とそれぞれ順に出力します。
grunt.initConfig({
log: {
foo: [1, 2, 3],
bar: 'hello world',
baz: false
}
});
grunt.task.registerMultiTask('log', 'Log stuff.', function() {
grunt.log.writeln(this.target + ': ' + this.data);
});
タスクとエイリアスタスクの更に詳しい情報を知りたい場合は、 タスクの作成を参照してください。
このメソッドは、grunt.registerTask
でも利用可能です。
grunt.task.renameTask ☃
タスク名を変更します。 元のタスクの名前を保持したまま、タスクのデフォルトの挙動を上書きしたい場合に有用かもしれません。
タスク名が変更された場合、this.nameと this.nameArgsプロパティは、それに沿って変更されることに注意してください。
grunt.task.renameTask(oldname, newname)
このメソッドは、grunt.renameTask
としても利用可能です。
多くのプロジェクトで、タスクはGruntfile内で定義されていますが、 規模の大きなプロジェクト、またはプロジェクトをまたいでタスクを共有する必要がある場合び、 1つ以上の外部ディレクトリ、またはNpmによってインストールされたgruntプラグインによって、 タスクをロードすることが可能です。
grunt.task.loadTasks ☃
タスクに関連するファイルを指定したディレクトリからロードし、Gruntfileに関連づけます。 このメソッドは、そのプラグインの"tasks"サブディレクトリへのパスを指定することで、ローカルのgruntプラグインから タスクに関連するファイルをロードするために使用することが出来ます。
grunt.task.loadTasks(tasksPath)
このメソッドは、grunt.loadTasks
としても使用可能です。
grunt.task.loadNpmTasks ☃
指定したGruntプラグインからタスクをロードします。
このプラグインは、ローカルのnpmを通してインストールされてGruntfileに関連付けられていなければなりません。
Gruntプラグインは、
grunt-init gruntplugin template
のgrunt init:gruntplugin
によって作成することが出来ます。
grunt.task.loadNpmTasks(pluginName)
このメソッドは、grunt.loadNpmTasks
としても使用可能です。
Gruntは自動的にキュー登録し、コマンドライン上で指定された全てのタスクを実行しますが、 個々のタスクが追加タスクをキュー登録し、実行することが可能です。
grunt.task.run
1つ以上のタスクをキュー登録します。
taskList
で指定された各タスクは、現タスクが完了次第、指定された順で即座に実行されます。
taskList
にはタスクの配列、または個々のタスクを引数として渡します。
grunt.task.run(taskList)
grunt.task.clearQueue
タスクのキューを完全に空にします。 追加タスクがキュー登録されない限り、それ以上タスクは実行されません。
grunt.task.clearQueue()
grunt.task.normalizeMultiTaskFiles
タスクのターゲット設定オブジェクトをsrc-destファイルマッピングの配列に正規化します。 このメソッドは、内部のマルチタスクシステムのthis.files / grunt.task.current.files プロパティで使用されます。
grunt.task.normalizeMultiTaskFiles(data [, targetname])
© 2010 - 2017 STUDIO KINGDOM