【发布时间】:2015-12-25 21:13:48
【问题描述】:
肯定有这么简单的答案,我找不到以前问过的人:
什么通配模式包含文件夹中的所有文件但忽略所有子文件夹?
gulp.src('*') 包括所有文件和文件夹。我只想要文件,而不必单独排除文件夹。
【问题讨论】:
肯定有这么简单的答案,我找不到以前问过的人:
什么通配模式包含文件夹中的所有文件但忽略所有子文件夹?
gulp.src('*') 包括所有文件和文件夹。我只想要文件,而不必单独排除文件夹。
【问题讨论】:
当您调用gulp.src 时,只需使用nodir 选项。这实际上将测试从文件系统中读取的文件,而不是依赖于今天可能存在但明天不存在的约定。
在以下示例中,dir 目标中的debug() 将输出文件和目录。 nodir 目标中的 debug() 将仅输出文件,因为它使用 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)。
【讨论】:
foo 中的所有文件而不是目录,您可以使用gulp.src("foo/**", { nodir: true })。这是它。一个来源。
如果您也想包含 .dotFiles,请尝试
gulp.src(['folder/*.*', 'folder/.*'])
【讨论】:
你可以试试
gulp.src('folder/*.*')
但是这不会匹配点文件。
【讨论】: