послідовність запуску є найбільш зрозумілим способом (принаймні, до виходу Gulp 4.0)
З послідовністю запуску ваше завдання буде виглядати так:
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/isissue/426#issuecomment-41208007 )