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.start
metodo 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' develop
attività terminerà prima di coffee
e 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_err
evento che potresti voler ascoltare.
task_stop
viene attivato al termine, mentre task_err
viene 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 )