Подберите все файлы, кроме файлов с определенными расширениями - PullRequest
0 голосов
/ 05 марта 2019

Как я могу исправить ./src/js/**/!(*.spec.js|*.test.js), чтобы он не возвращал каталоги?Я пробовал вот так ./src/js/**/*.!(spec.js|test.js), но он соответствует всем файлам, кроме каталогов, так же, как ./src/js/**/*.Пример вывода ./src/js/**/!(*.spec.js|*.test.js):

[ './src/js/__tests__',
  './src/js/__tests__/example.js',
  './src/js/example.js',
  './src/js/index.js' ]

Желаемый вывод:

[ './src/js/__tests__/example.js',
  './src/js/example.js',
  './src/js/index.js' ]

glob версия 7.1.3

1 Ответ

1 голос
/ 05 марта 2019

Обычно вы хотите исключить папки в вашем случае, что можно сделать, добавив (^/) в конце.

Полный шар должен быть ./src/js/**/!(*.spec.js|*.test.js|^/)

Вы можете проверить синтаксис микроматча здесь

UPDATE:

С глобальным модулем npm есть опция, которая называется nodir. Если задано значение true, в выходных данных не будет путей к каталогам.

Пример:

var glob = require("glob")

glob("./src/js/**/!(*.spec.js|*.test.js)", { nodir: true }, (er, files) => {
  console.log(er, files)
})

Вы можете найти более подробную информацию обо всех доступных опциях в их разделе о опциях.

...