run-sequenceが最も明確な方法です(少なくともGulp 4.0がリリースされるまで)
run-sequenceを使用すると、タスクは次のようになります。
var sequence = require('run-sequence');
/* ... */
gulp.task('develop', function (done) {
sequence('clean', 'coffee', done);
});
しかし、(何らかの理由で)使用したくない場合は、gulp.start
メソッドが役立ちます:
gulp.task('develop', ['clean'], function (done) {
gulp.on('task_stop', function (event) {
if (event.task === 'coffee') {
done();
}
});
gulp.start('coffee');
});
注: 結果を聞かずにタスクを開始するだけの場合、develop
タスクはより早く終了し、coffee
混乱を招く可能性があります。
不要な場合は、イベントリスナーを削除することもできます
gulp.task('develop', ['clean'], function (done) {
function onFinish(event) {
if (event.task === 'coffee') {
gulp.removeListener('task_stop', onFinish);
done();
}
}
gulp.on('task_stop', onFinish);
gulp.start('coffee');
});
考えてみても、そこにあるtask_err
イベント聴きたいことが。
task_stop
正常に終了するとトリガーされtask_err
ますが、エラーが発生すると表示されます。
の公式ドキュメントがないのも不思議に思うかもしれませんgulp.start()
。gulpメンバーからのこの回答は、次のことを説明しています。
gulp.start
ビルドファイルが複雑になる可能性があるため、意図的に文書化されていません。
(ソース:https : //github.com/gulpjs/gulp/issues/426#issuecomment-41208007)