Шаблон глобуса узла для файлов не в папках, начинающихся с подчеркивания

У меня есть структура каталогов следующим образом:

source
├── _assets
│   ├── css
│   └── js
├── _config.yaml
├── downloads
│   ├── hello2.txt
│   └── hello.txt
├── hello_world
│── robots.txt
└── favicon.ico

Я использую glob пакета узла, чтобы перечислить файлы, которые следуют за определенной моделью. Я хочу перечислить все файлы, которых нет в папке, имя которой начинается с подчеркивания![_*]. Шаблоны, которые я пробовал, включают в себя различные комбинации

const pattern1 = `${sourceDirPath}/!(_*)**`
const pattern2 = `${sourceDirPath}/!(_*)/**`

pattern1 только дает мне файлы, такие как [source/robots.txt, source/favicon.ico] в то время как pattern2 только дает мне файлы, такие как [source/downloads/hello.txt, source/downloads/hello2.txt]

Может кто-нибудь дать мне подсказку, какой шаблон позволит мне иметь файлы из обоих шаблонов? Или я должен искать оба шаблона, а затем объединить список?

1 ответ

Решение

Решено с помощью игнорирования

const pattern = `${sourceDirPath}/**`;
const ignorePattern = `${sourceDirPath}/_*/**`;
glob(pattern, {
  ignore: [ignorePattern],
  nodir: true,
}, callback);
Другие вопросы по тегам