@wakenbyWork

Как задать такой glob?

main-folder
├── folder-1
│   └── _valid-folder
│       └── _valid-folder
│           └── _valid-folder
├── folder-2
│   └── some-folder
│       └── _invalid-folder
│           └── _invalid-folder
└── folder-3
    └── _valid-folder
        └── _valid-folder
            └── some-folder
                └── _invalid-folder
                    └── _invalid-folder


Есть такая структура папок, и необходимо написать glob, чтобы найти определенные файлы во всех папках первого уровня в папке main-folder, и все подпапки в этих папках, которые имеют префикс _.

Попробовал написать, вышло почти то что нужно:

const getSrc = () => ([
  'main-folder/*/*.{ext}',
  'main-folder/*/**/?(_*)/*.{ext}',
])


В итоге все работает, но папки с префиксом _ берутся даже если родительская папка без префикса _.

Как написать glob чтобы брались все папки, из определенной папки, и чтобы все эти папки имели префикс _ и чтобы обязательно такой префикс был у всех родительских папок?
  • Вопрос задан
  • 124 просмотра
Пригласить эксперта
Ответы на вопрос 1
Alexandroppolus
@Alexandroppolus
кодир
Как вариант, можно дополнительно отфильтровать регуляркой
const getSrc = () => ([
    'main-folder/*/*.{ext}'
].concat(
    glob.sync('main-folder/*/*/**/*.{ext}')
        .filter((p) => !/^[^/]+\/[^/]+.*\/[^_][^/]*\//.test(p))
));
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы