【问题标题】:How to perform multiple gulp commands in one task如何在一项任务中执行多个 gulp 命令
【发布时间】:2014-09-07 17:49:55
【问题描述】:

我很难理解如何在单个任务中处理多个 gulp 源。在这样的任务中:

gulp.task('task1', function (cb) {
    gulp.src('src/js/**/*').pipe(gulp.dest('dist'));
    gulp.src('src/css/**/*').pipe(gulp.dest('dist'));
    ...
});

我想处理所有不同的源文件,然后将任务标记为已完成,因此其他任务可以依赖于它的完成。

我知道为每个单独的源使用单独的任务的可能性,但这会使一切变得更加复杂,并使编排器因大量实际上不需要单独的任务而膨胀。

【问题讨论】:

    标签: gulp


    【解决方案1】:

    如果您对所有文件执行相同的操作,则可以将一组 glob 传递给 gulp.src。例如,

    gulp.task('task1', function () {
      return gulp.src(['src/js/**/*', 'src/css/**/*']).pipe(gulp.dest('dist'));
    });
    

    确保返回流,以便协调器知道该任务何时完成。

    如果你对不同的文件集做不同的事情,你可以像这样在一个任务中合并流:

    var es = require('event-stream');
    gulp.task('fancy-task', function () {
      return es.merge(
          gulp.src('*.js').pipe(some-js-plugin()),
          gulp.src('*.css').pipe(some-style-plugin))
          .pipe(gulp.dest('dist'));
    });
    

    【讨论】:

    • 当然:合并流。我应该想到的。
    • 如果您想为不同的文件集设置不同的目的地怎么办?
    • 似乎您可以将gulp.dest 放在合并将按预期工作的每个流上。
    • 我不明白这是如何回答这个问题的......在 OP 的情况下它可以工作,但是如果你想要不同的 dest 目录,例如?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多