我從咕嘟咕嘟3升級到4,和我遇到了一個錯誤:這個gulp-concat和lazypipe的組合是如何使用gulp 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