gulp.src()包含文件但忽略所有文件夹

sth*_*s42 4 glob gulp node-glob

肯定有这样一个简单的答案,我找不到之前曾问过的人:

什么通配模式包含文件夹中的所有文件但忽略所有子文件夹?

gulp.src('*')包含所有文件和文件夹.我只想要文件而不必单独排除文件夹.

小智 6

如果你想包括.dotFiles,那么试试

gulp.src(['folder/*.*', 'folder/.*'])
Run Code Online (Sandbox Code Playgroud)


Lou*_*uis 6

只需nodir在通话时使用该选项即可gulp.src.这实际上将测试从文件系统读取的文件,而不是依赖于今天但不是明天的约定.

在下面的例子中,debug()dir目标将输出文件和目录.将debug()nodir目标将只输出文件,因为它使用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());
});
Run Code Online (Sandbox Code Playgroud)

如果您希望树的一部分包含目录而另一部分排除它们,那么您可以合并流:

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

我不认为只有一个gulp.src调用的便利性证明依赖*.*.*排除目录.版本控制系统往往创建目录将匹配什么.*(例如.git,.svn).开发工具也在做相同的(例如.deps,.tmp.foo).