如何在 Gulp 管道中并行 运行 两个独立的插件?

How to run two separate plugins in parallel in a Gulp pipe?

我正在尝试设置一个 Gulp 任务,通过使用 gulp-ttf2woffgulp-ttf2woff2 插件将 .ttf 字体转换为网络字体格式。分别将源字体转换为.woff.woff2.

我已经推出了这两个独立的功能,每个插件一个:

function fontsW(done) {
    src(fontsSrc)
        .pipe(ttf2woff())
        .pipe(dest(fontsDist))
    done();
};

function fontsW2(done) {
    src(fontsSrc)
        .pipe(ttf2woff2())
        .pipe(dest(fontsDist))
    done();
};

是否可以将它们浓缩在一个函数中,让我们称其为 function fonts(done) {} 同时处理两个插件?

基本上,我想要这样的东西

function fontsW2(done) {
    src(fontsSrc)
        .pipe(ttf2woff())
        .pipe(ttf2woff2())
        .pipe(dest(fontsDist))
    done();
};

其中 ttf2woff()ttf2woff2() 都接收 src 的输出并将自己处理的文件提供给 dest.

您可以定义一个并行调用两个函数的任务:

gulp.task('fonts', gulp.parallel(ttf2woff, ttf2woff2));

您可以在其他任务中使用此任务(例如从您的 default 任务中调用它),或者您可以直接从终端调用它:

gulp fonts

你可以这样做:

function fontsW(done) {
    src(fontsSrc)
        .pipe(ttf2woff())
        .pipe(dest(fontsDist))

     src(fontsSrc)
        .pipe(ttf2woff2())
        .pipe(dest(fontsDist))
    done();
};