La secuencia de ejecución es la forma más clara (al menos hasta que se publique Gulp 4.0)
Con la secuencia de ejecución , su tarea se verá así:
var sequence = require('run-sequence');
/* ... */
gulp.task('develop', function (done) {
sequence('clean', 'coffee', done);
});
Pero si (por alguna razón) prefiere no usarlo, el gulp.start
método ayudará :
gulp.task('develop', ['clean'], function (done) {
gulp.on('task_stop', function (event) {
if (event.task === 'coffee') {
done();
}
});
gulp.start('coffee');
});
Nota: Si solo inicia la tarea sin escuchar el resultado, la develop
tarea finalizará antes coffee
y eso puede ser confuso.
También puede eliminar el detector de eventos cuando no sea necesario
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');
});
Considere que también hay un task_err
evento que tal vez quiera escuchar.
task_stop
se activa al finalizar con éxito, mientras task_err
aparece cuando hay algún error.
También puede preguntarse por qué no hay documentación oficial para gulp.start()
. Esta respuesta del miembro de Gulp explica las cosas:
gulp.start
no está documentado a propósito porque puede generar archivos de compilación complicados y no queremos que la gente lo use
(fuente: https://github.com/gulpjs/gulp/issues/426#issuecomment-41208007 )