我有一个像这样的项目:
root |-incl1 |-incl2 |- ... |-excl1 |-excl2 |- .gitignore <-- keep this one |- (other files) <-- exclude them
我需要写的gulp.src()将包括除excl1和之外的所有文件夹,excl2 但 保留.gitignore文件。
gulp.src()
excl1
excl2
.gitignore
这是我的代码不起作用:
gulp.src([ baseDir + '/**', '!' + baseDir + '/{excl1, excl1/**}' '!' + baseDir + '/excl2/{**, !.gitignore}' // <-- doesn't work ], {dot: true})
这似乎可行:
gulp.src([ baseDir + '/**', // Include all '!' + baseDir + '/excl1{,/**}', // Exclude excl1 dir '!' + baseDir + '/excl2/**/!(.gitignore)', // Exclude excl2 dir, except .gitignore ], { dot: true });
从全局匹配中排除单个文件非常棘手,因为在minimatch文档中没有类似的示例。
https://github.com/isaacs/minimatch
“如果模式以!字符开头,则否定”。
!