如何在一个任务中执行多个gulp命令

dob*_*ler 16 gulp

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

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

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

我知道有可能为每个单独的源使用单独的任务,但这会使一切变得更加复杂,并使协调器膨胀,实际上不需要单独执行大量任务.

aha*_*w01 32

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

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

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

如果您对不同的文件集执行不同的操作,则可以在一个任务中合并这样的流:

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'));
});
Run Code Online (Sandbox Code Playgroud)

  • 当然:合并流.我应该想通了. (3认同)
  • 我不知道这是如何回答这个问题的......在OP的情况下它可以工作,但是如果你想要不同的目录,那该怎么办? (2认同)