Если у вас есть зависимые задачи, вам необходимо вернуть поток, чтобы задачи ожидали завершения своих зависимых задач, прежде чем запускаться сами.
например
// 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'));
});
в этом примере вы ожидаете, что задача 1 будет завершена (например, компиляция coffeescript или что-то еще) до запуска задачи 2 ... но если мы не добавим return, как в примере ниже, они будут выполняться синхронно, а не асинхронно; и скомпилированный coffeescript не будет минифицирован, потому что задача 2 не будет ждать завершения задачи 1 и поэтому не получит скомпилированный вывод задачи 1 . Поэтому мы всегда должны возвращаться в таких обстоятельствах.
// 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