Якщо у вас є залежні завдання, вам потрібно повернути потік, щоб завдання чекали завершення їх залежних завдань до запуску самих.
напр
// without return
gulp.task('task1', function() {
gulp.src('src/coffee/*.coffee')
/* eg compile coffeescript here */
.pipe(gulp.dest('src'));
});
gulp.task('task2', ['task1'], function() {
gulp.src('src/*.js')
/* eg minfify js here */
.pipe(gulp.dest('dest'));
});
У цьому прикладі можна було очікувати task1 для завершення (наприклад , складання CoffeeScript або будь-який інший ) до TASK2 пробігів ... але якщо ми не додамо повернення - як приклад нижче - тоді вони будуть працювати синхронно НЕ асинхронно; і скомпільований CoffeeScript НЕ буде мінімізований , оскільки task2 не ждали завдання 1 , щоб закінчити і тому не буде забрати на скомпільований виході task1 . Тому ми завжди повинні повертатися в цих умовах.
// with return
gulp.task('task1', function() {
return gulp.src('**/*.coffee')
/* your operations here */
.pipe(gulp.dest('dest'));
});
gulp.task('task2', ['task1'], function() {
return gulp.src('**/*.js')
/* your operations here */
.pipe(gulp.dest('dest'));
});
Редагувати: Рецепт тут пояснює це далі. https://github.com/gulpjs/gulp/blob/master/docs/recipes/running-tasks-in-series.md