I have a project like this:
root
|-incl1
|-incl2
|- ...
|-excl1
|-excl2
|- .gitignore <-- keep this one
|- (other files) <-- exclude them
I need to write gulp.src()
that will include all folders except excl1
and excl2
but keep the .gitignore
file.
This is my code that doesn't work:
gulp.src([
baseDir + '/**',
'!' + baseDir + '/{excl1, excl1/**}'
'!' + baseDir + '/excl2/{**, !.gitignore}' // <-- doesn't work
], {dot: true})
This seems to work:
gulp.src([
baseDir + '/**', // Include all
'!' + baseDir + '/excl1{,/**}', // Exclude excl1 dir
'!' + baseDir + '/excl2/**/!(.gitignore)', // Exclude excl2 dir, except .gitignore
], { dot: true });
Excluding single file from glob match was tricky because there's no similar examples in minimatch docs.
https://github.com/isaacs/minimatch
"If the pattern starts with a !
character, then it is negated".