2noの日記

メモ用

【gulp】タスク内で run-sequence を使うなら気をつけること

基本的にタスク内で run-sequence を使うなら、引数のコールバックを最後に指定するべき。

つまりこんな感じ。

gulp.task('hoge-fuga', function(callback) {
  runSequence('hoge', 'fuga', callback); // <- 引数 callback を最後に指定する
});

こうしないと同期されない。
次の場合は処理の順番が保証されず、期待通りに動かないことがあるので注意したい。

gulp.task('hoge-fuga', function() {
  runSequence('hoge', 'fuga');
});

gulp.task('task', function() {
  runSequence('hoge-fuga', 'piyo');
});

上記だと、task を実行した際、hoge-fuga 内のタスクが非同期で動き出し、後に続く piyo がこれらの終わりを待たずに実行される。
処理の重さによっては、一番最後の piyo が先に終わる場合もあり得る。

watch とか、後に続く処理が無ければコールバックは無くても良い。