Mam sytuację, w której próbuję użyć pomruku, aby wskazać kod, z wyjątkiem określonych folderów.Wykluczenie folderu (minimatch/glob)
grunt wykorzystuje minimatch (podobny do bsdglob) pod maską, aby dopasować pliki, ale nie mogę się domyślić, jak zrobić wykluczenie stylu .gitignore z folderu.
Chciałbym łykać to:
ignoreme
i dopasować te:
/folder/path/here/to/something/ok.js
/another/folder/path.js
/test.js
ale nie pasuje do nich:
/folder/ignoreme/something.js
/folder/path/here/to/ignoreme/metoo/file.js
ten będzie pasował do wszystkiego, w tym ignoreme:
/**/*.js
więc pomyślałam mógłby zrobić coś takiego:
/**/!(ignoreme)/**/*.js
ale pasujący pliki w folderze ignoreme.
Przywykłem do regexes, ale nie wydaje się, aby dowiedzieć się, jak powtórzyć wzór lub coś tutaj - Próbowałem również rzeczy jak:
/(!(ignoreme)|*)*/*.js
nadzieję, że pojemnik będzie powtarzać, ale to nie robi Działa, po prostu nie pasuje do wszystkiego.
Jakikolwiek sposób przekazania ścieżek plików regex do gruntu lub sprawdzenie, czy to działa?
Aktualizacja:
Oto jak mam obecnie do czynienia z tym problemem:
var pattern = /\/ignoreme\//
var files = grunt.file.expandFiles(arrayOfFilesPassedToMinimatch).filter(function(f){
return !pattern.test(f)
})
bym nadal być zainteresowany, jeśli są możliwe folderu wyklucza w minimatch.
Użycie 'map' powoduje, że' files' zawiera tablicę wartości "TRUE" i "FALSE". 'filter' poprawnie ustawi' pliki' na listę filtrowanych ścieżek. – deefour
Dobrze, musisz pisać w nocy. Zaktualizowano próbkę kodu do pracy. – Jesse