Глоток, копирование пустых каталогов

В моей сборке gulp я сделал задачу, которая запускается после того, как все компиляция, удаление и минимизация произошли. Эта задача просто копирует все из src в каталог dest, который не был затронут / обработан предыдущими задачами. У меня небольшая проблема в том, что это приводит к пустым каталогам в каталоге dest.

Есть ли способ рассказать gulp.src Глобус, чтобы включить только файлы в сопоставлении с образцом (например, предоставление 'is_file' флаг)?

Благодарю.

2 ответа

Решение

Исправлено, добавив фильтр в конвейер:

var es = require('event-stream');


var onlyDirs = function(es) {
  return es.map(function(file, cb) {
      if (file.stat.isFile()) {
        return cb(null, file);
      } else {
        return cb();
      }
  });
};
// ...

var s = gulp.src(globs)
        .pipe(onlyDirs(es))
        .pipe(gulp.dest(folders.dest + '/' + module.folder));

// ...

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

Чтобы исключить пустые папки я добавил { nodir: true } после картины шара

Ваш общий шаблон может быть таким (используя переменные из ответа Ника):

gulp.src(globs, { nodir: true })
    .pipe(gulp.dest(folders.dest + '/' + module.folder));

Мой был следующим:

gulp.src(['src/**/*', '!src/scss/**/*.scss', '!src/js/**/*.js'], { nodir: true })
    .pipe(gulp.dest('dev/'));

При этом выбираются все файлы из каталога src, которые не являются файлами scss или js, и также не копируются пустые папки из этих двух каталогов.

Другие вопросы по тегам