run-sequence adalah cara yang paling jelas (setidaknya sampai Gulp 4.0 dilepaskan)
Dengan run-sequence , tugas Anda akan terlihat seperti ini:
var sequence = require('run-sequence');
/* ... */
gulp.task('develop', function (done) {
sequence('clean', 'coffee', done);
});
Tetapi jika Anda (karena alasan tertentu) lebih suka tidak menggunakannya, gulp.start
metode akan membantu :
gulp.task('develop', ['clean'], function (done) {
gulp.on('task_stop', function (event) {
if (event.task === 'coffee') {
done();
}
});
gulp.start('coffee');
});
Catatan: Jika Anda hanya memulai tugas tanpa mendengarkan hasil, develop
tugas akan selesai lebih awal dari coffee
, dan itu mungkin membingungkan.
Anda juga dapat menghapus pendengar acara saat tidak diperlukan
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');
});
Pertimbangkan juga ada task_err
acara yang mungkin ingin Anda dengarkan.
task_stop
dipicu pada penyelesaian yang berhasil, sementara task_err
muncul ketika ada beberapa kesalahan.
Anda juga mungkin bertanya-tanya mengapa tidak ada dokumentasi resmi untuk gulp.start()
. Jawaban dari anggota tegukan ini menjelaskan hal-hal berikut:
gulp.start
sengaja tidak didokumentasikan karena dapat menyebabkan rumitnya membangun file dan kami tidak ingin orang menggunakannya
(sumber: https://github.com/gulpjs/gulp/issues/426#issuecomment-41208007 )