Я обновляюсь от Gulp от 3 до 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());
});
Любые советы оценены!