如何使gulp.series等到在以前的任务上创建文件后

问题描述 投票:0回答:1

我目前正在使用类似的东西:

gulp.task('js', gulp.series('js-a', 'js-b', 'js-c'));

[任务js-c要求先执行js-ajs-b并生成2个文件,然后再在js-c中合并。

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

我如何告诉gulp系列等待那些?

我已经阅读了其他相关问题,但他们倾向于依靠外部脚本来完成此任务。我手动设法通过在setTimeout上添加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();
});

而且我现在不得不使用超时来解决此问题:

setTimeout(function(){
    done();
}, 500);
npm gulp
1个回答
0
投票

done()在这种情况下不应该使用,任务应该返回流(请参阅here)。请尝试以下方法:

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('./'));
});
© www.soinside.com 2019 - 2024. All rights reserved.