Je suis mise à niveau de Gulp 3 à 4, et je suis en cours d'exécution dans une erreur:Qu'en est-il de cette combinaison de gulp-concat et de lazypipe qui provoque une erreur en utilisant gulp 4?
The following tasks did not complete: build
Did you forget to signal async completion?
Je comprends ce qu'il dit, mais ne peut pas comprendre pourquoi ce code déclenche il.
Erreur ou non, la tâche se termine (les fichiers sont concaténés et écrits dans dest). L'exécution du même code sans lazypipe n'entraîne aucune erreur et la suppression de la concaténation dans lazypipe corrige également l'erreur.
Envelopper le tout dans quelque chose qui crée un flux (comme fusionner-stream) résout le problème. Je suppose que quelque chose à propos de l'interaction entre gulp-concat et lazypipe empêche un flux d'être renvoyé correctement.
est ici la tâche (simplifiée):
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());
});
Tout conseil apprécié!
Merci pour l'explication claire et détaillée, vraiment l'apprécier! – goodforenergy