la sequenza di esecuzione è il modo più chiaro (almeno fino al rilascio di Gulp 4.0)
Con la sequenza di esecuzione , l'attività sarà simile alla seguente:
var sequence = require('run-sequence');
/* ... */
gulp.task('develop', function (done) {
sequence('clean', 'coffee', done);
});
Ma se tu (per qualche ragione) preferisci non usarlo, il gulp.startmetodo ti aiuterà :
gulp.task('develop', ['clean'], function (done) {
gulp.on('task_stop', function (event) {
if (event.task === 'coffee') {
done();
}
});
gulp.start('coffee');
});
Nota: se si avvia un'attività solo senza ascoltare il risultato, l' developattività terminerà prima di coffeee ciò potrebbe creare confusione.
È inoltre possibile rimuovere il listener di eventi quando non è necessario
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');
});
Considera che c'è anche un task_errevento che potresti voler ascoltare.
task_stopviene attivato al termine, mentre task_errviene visualizzato in caso di errore.
Potresti anche chiederti perché non esiste una documentazione ufficiale per gulp.start(). Questa risposta del membro di Gulp spiega le cose:
gulp.start non è documentato apposta perché può portare a file di build complicati e non vogliamo che le persone lo utilizzino
(fonte: https://github.com/gulpjs/gulp/issues/426#issuecomment-41208007 )