gulp.src() включает файлы, но игнорирует все папки

Есть, конечно, такой простой ответ на этот вопрос, что я не могу найти никого, кто спрашивал это раньше:

Какой шаблон глобализации включает все файлы в папке, но игнорирует ВСЕ подпапки?

gulp.src ('*') включает в себя все файлы и папки. Я просто хочу файлы и не хотел бы исключать папки по отдельности.

3 ответа

Решение

Если вы хотите включить.dotFiles, попробуйте

gulp.src(['folder/*.*', 'folder/.*'])

Просто используйте nodir вариант при звонке gulp.src, Это фактически проверит файлы, считываемые из файловой системы, вместо того, чтобы полагаться на соглашения, которые могут выполняться сегодня, но не завтра.

В следующем примере debug() в dir target будет выводить файлы и каталоги. debug() в nodir target будет выводить только файлы, потому что использует nodir, Заполните каталог foo с файлами и подкаталогами, и вы увидите разницу.

var gulp = require("gulp");
var debug = require("gulp-debug");

gulp.task("dir", function () {
    return gulp.src("foo/**")
        .pipe(debug());
});

gulp.task("nodir", function () {
    return gulp.src("foo/**", { nodir: true })
        .pipe(debug());
});

Если вы хотите, чтобы одна часть дерева включала каталоги, а другая часть исключала их, вы можете объединить потоки:

var es = require("event-stream");
gulp.task("nodir-multi", function () {
    return es.merge(gulp.src("foo/**", { nodir: true }),
                    gulp.src("bar/**"))
        .pipe(debug());
});

Я не думаю, что удобство иметь только один gulp.src вызов оправдывает доверие *.* а также .* исключить каталоги. Системы контроля версий часто создают каталоги, которые бы соответствовали .* (например .git, .svn). Инструменты разработки также делают то же самое (например, .deps, .tmp.foo).

Ты можешь попробовать

gulp.src('folder/*.*')

Однако это не будет соответствовать точечным файлам.

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