如何让 gulp.series 等待之前的任务创建文件

Alv*_*aro 6 npm gulp

我目前正在使用这样的东西:

gulp.task('js', gulp.series('js-a', 'js-b', 'js-c'));
Run Code Online (Sandbox Code Playgroud)

该任务js-c需要js-a首先js-b执行并生成 2 个文件,然后我将其合并到js-c.

但是,无论我是否使用gup-series,该函数js-c都会在创建前两个任务的两个文件之前执行。

我怎样才能告诉 gulp 系列等待那些?

我读过其他相关问题,但他们倾向于依赖外部脚本来完成此任务。setTimeout我通过添加on手动设法解决了这个问题js-b,但似乎是一个黑客解决方案。

有没有正确的方法可以用 gulp.series 来完成此任务?

为了让您了解上下文,该任务js-a如下所示:

var gp_concat = require('gulp-concat');

gulp.task('js-a', function(done) {
    gulp.src([
            'file1.js',
            'file2.js'
        ])
        .pipe(gp_concat('tmp.js'))
        .pipe(gulp.dest('./'));

        done();
});
Run Code Online (Sandbox Code Playgroud)

我现在被迫使用超时来解决这个问题:

setTimeout(function(){
    done();
}, 500);
Run Code Online (Sandbox Code Playgroud)

Láď*_*nek 5

done()在这种情况下不应使用,任务应返回流(请参阅此处)。请尝试这个:

var gp_concat = require('gulp-concat');

gulp.task('js-a', function() {
    return gulp.src([
            'file1.js',
            'file2.js'
        ])
        .pipe(gp_concat('tmp.js'))
        .pipe(gulp.dest('./'));
});
Run Code Online (Sandbox Code Playgroud)