Bor*_*ard 31 glob node.js minimatch gulp
我有一个这样的项目:
root
|-incl1
|-incl2
|- ...
|-excl1
|-excl2
|- .gitignore <-- keep this one
|- (other files) <-- exclude them
Run Code Online (Sandbox Code Playgroud)
我需要编写gulp.src()包含所有文件夹的文件excl1,excl2 但保留.gitignore文件.
这是我的代码不起作用:
gulp.src([
baseDir + '/**',
'!' + baseDir + '/{excl1, excl1/**}'
'!' + baseDir + '/excl2/{**, !.gitignore}' // <-- doesn't work
], {dot: true})
Run Code Online (Sandbox Code Playgroud)
Hei*_*kki 73
这似乎有效:
gulp.src([
baseDir + '/**', // Include all
'!' + baseDir + '/excl1{,/**}', // Exclude excl1 dir
'!' + baseDir + '/excl2/**/!(.gitignore)', // Exclude excl2 dir, except .gitignore
], { dot: true });
Run Code Online (Sandbox Code Playgroud)
从glob匹配中排除单个文件很棘手,因为minimatch文档中没有类似的示例.
https://github.com/isaacs/minimatch
"如果模式以!字符开头,那么它就会被否定".