gulp.src() 包含文件但忽略所有文件夹
gulp.src() include files but ignore all folders
肯定有一个如此简单的答案,我找不到以前问过的人:
什么 globbing 模式可以包含文件夹中的所有文件但忽略所有子文件夹?
gulp.src('*') 包括所有文件和文件夹。我只想要文件,不想单独排除文件夹。
你可以试试
gulp.src('folder/*.*')
但是,这不会匹配点文件。
如果您还想包含 .dotFiles,请尝试
gulp.src(['folder/*.*', 'folder/.*'])
调用 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
)。
肯定有一个如此简单的答案,我找不到以前问过的人:
什么 globbing 模式可以包含文件夹中的所有文件但忽略所有子文件夹?
gulp.src('*') 包括所有文件和文件夹。我只想要文件,不想单独排除文件夹。
你可以试试
gulp.src('folder/*.*')
但是,这不会匹配点文件。
如果您还想包含 .dotFiles,请尝试
gulp.src(['folder/*.*', 'folder/.*'])
调用 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
)。