【发布时间】:2017-02-27 03:10:03
【问题描述】:
我正在从 Gulp 3 升级到 4,我遇到了一个错误:
The following tasks did not complete: build
Did you forget to signal async completion?
我明白它在说什么,但不明白为什么这段代码会触发它。
错误与否,任务完成(文件被连接并写入dest)。不使用惰性管道执行相同的代码不会导致错误,并且在惰性管道中删除连接也可以修复错误。
将整个内容包装在创建流的东西中(如合并流)可以解决问题。我猜想 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());
});
任何建议表示赞赏!
【问题讨论】:
标签: javascript gulp build-tools gulp-concat gulp-4