【问题标题】:How to run two separate plugins in parallel in a Gulp pipe?如何在 Gulp 管道中并行运行两个单独的插件?
【发布时间】:2019-03-16 21:33:43
【问题描述】:

我正在尝试设置 Gulp 任务,通过使用 gulp-ttf2woffgulp-ttf2woff2 插件将 .ttf 字体转换为 webfont 格式。分别将源字体转换为.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

【问题讨论】:

    标签: stream gulp pipe gulp-plugin


    【解决方案1】:

    你可以这样做:

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

    【讨论】:

      【解决方案2】:

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

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

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

      gulp fonts
      

      【讨论】:

      • 谢谢,我知道我可以从一个任务中调用多个函数,但我的问题是首先要创建一个函数
      猜你喜欢
      • 1970-01-01
      • 2021-03-24
      • 2015-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多