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

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

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 } после шаблона glob.

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

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-файлы и не копирует пустые папки из этих двух каталогов.