Глоток, копирование пустых каталогов
В моей сборке 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, и также не копируются пустые папки из этих двух каталогов.