Я перехожу от Глоток 3 до 4, и я бегу в ошибку:Как насчет этой комбинации gulp-concat и lazypipe вызывает ошибку с помощью глотки 4?
The following tasks did not complete: build
Did you forget to signal async completion?
Я понимаю, что это говорит, но не может понять, почему этот код запуска его.
Ошибка или нет, задача завершена (файлы объединены и записаны в dest). Выполнение одного и того же кода без lazypipe не приводит к ошибке, и удаление конкатенации внутри lazypipe также устраняет ошибку.
Обертывание всей вещи в чем-то, что создает поток (например, поток слияния), устраняет проблему. Я предполагаю, что что-то о взаимодействии между gulp-concat и lazypipe не позволяет правильному возврату потока.
Вот (упрощенно) задача:
gulp.task('build', function() {
var dest = 'build';
var buildFiles = lazypipe()
.pipe(plugins.concat, 'cat.js') // Task will complete if I remove this
.pipe(gulp.dest, dest);
// This works
// return gulp.src(src('js/**/*.js'))
// .pipe(plugins.concat('cat.js'))
// .pipe(gulp.dest(dest));
// This doesn't (unless you wrap it in a stream-making function)
return gulp.src(src('js/**/*.js'))
.pipe(buildFiles());
});
Любые советы оценили!
Спасибо за четкие и подробные объяснения, действительно ценю это! – goodforenergy