послідовність запуску є найбільш зрозумілим способом (принаймні, до виходу 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 )