Глоток.задача js, возврат на src?
Я новичок в глотке и просматривал примеры настроек. Некоторые люди имеют следующую структуру:
gulp.task("XXXX", function() {
gulp.src("....
у других людей есть это:
gulp.task("XXXX", function() {
return gulp.src("....
мне интересно, какая разница возвращение на src делает??
3 ответа:
вы
return
чтобы указать, что задача является асинхронность.gulp.src()
возвращает поток, поэтому он асинхронный.без него система задач не знала бы, когда она закончила. Читайте docs.
Если у вас есть зависимые задачи нужно возвращение поток для задач, чтобы ждать их зависимых задач для завершения перед запуском себя.
например
// 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 работает ... но если мы не добавим возвращение – как в примере ниже – тогда они будут работать синхронно не асинхронно; и скомпилированный 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')); });
Edit: рецепт здесь объясняет это дальше. https://github.com/gulpjs/gulp/blob/master/docs/recipes/running-tasks-in-series.md
Я нашел это полезно, если у вас есть несколько потоков в задаче. Вам нужно объединить/объединить несколько потоков и вернуть их.
var gulp = require('gulp'); var merge = require('gulp-merge'); gulp.task('test', function() { var bootstrap = gulp.src('bootstrap/js/*.js') .pipe(gulp.dest('public/bootstrap')); var jquery = gulp.src('jquery.cookie/jquery.cookie.js') .pipe(gulp.dest('public/jquery')); return merge(bootstrap, jquery); });
альтернативой, используя структуру определения задачи Gulps, было бы:
var gulp = require('gulp'); gulp.task('bootstrap', function() { return gulp.src('bootstrap/js/*.js') .pipe(gulp.dest('public/bootstrap')); }); gulp.task('jquery', function() { return gulp.src('jquery.cookie/jquery.cookie.js') .pipe(gulp.dest('public/jquery')); }); gulp.task('test', ['bootstrap', 'jquery']);