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/*.*')
Однако это не будет соответствовать точечным файлам.