Подтвердить что ты не робот

Как выполнить несколько команд gulp в одной задаче

Мне сложно понять, как обрабатывать несколько источников gulp в одной задаче. В такой задаче:

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

Я хотел бы обработать все разные исходные файлы, а затем пометить задачу как завершенную, поэтому остальные задачи могут зависеть от ее завершения.

Я знаю о возможности использования индивидуальных задач для каждого отдельного источника, но это усложнит ситуацию и раздувает оркестр с огромным количеством задач, которые на самом деле не нужны индивидуально.

4b9b3361

Ответ 1

Вы можете передать массив globs в 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'));
});