Что такое glob-шаблоны?

Glob-шаблоны - это шаблоны с подстановочными знаками для указания наборов имен файлов или путей. Они появились в Unix-оболочках, но теперь используются в языках программирования и инструментах. Распространенные подстановочные знаки включают * (соответствует любым символам), ** (рекурсивно соответствует каталогам), ? (соответствует одному символу) и [abc] (соответствует любому символу в скобках). Эти шаблоны необходимы для операций с файлами, инструментов сборки и систем контроля версий, таких как Git.

Как работают glob-шаблоны?

Glob-шаблоны используют специальные подстановочные знаки для сопоставления путей файлов. Вот наиболее распространенные шаблоны:

  • * - Соответствует любому количеству символов в пределах одного уровня каталога
    • Пример: *.js соответствует file.js, test.js, но не folder/file.js
  • ****** - Соответствует любому количеству каталогов (рекурсивное сопоставление)
    • Пример: **/*.js соответствует file.js, src/file.js, src/utils/file.js
  • ? - Соответствует ровно одному символу
    • Пример: file?.js соответствует file1.js, fileA.js, но не file10.js
  • [abc] - Соответствует любому одному символу из набора
    • Пример: file[123].js соответствует file1.js, file2.js, file3.js
  • [a-z] - Соответствует любому символу в диапазоне
    • Пример: [A-Z]*.js соответствует файлам, начинающимся с заглавных букв
  • {js,ts} - Соответствует любому из разделенных запятыми шаблонов (раскрытие фигурных скобок)
    • Пример: *.{js,ts} соответствует file.js и file.ts
  • !pattern - Отрицает шаблон (исключает совпадающие файлы)
    • Пример: !*.test.js исключает все тестовые файлы

Практические примеры:

  • src/**/*.{js,ts} - Все файлы JavaScript и TypeScript в директории src и поддиректориях
  • lib/**/test/*.js - Все JavaScript файлы в папках test внутри lib
  • **/*.min.js - Все минифицированные JavaScript файлы в любом месте проекта
  • !node_modules/** - Исключить всё в директории node_modules

Описание инструмента

Специализированный инструмент для тестирования и проверки glob-шаблонов с путями файлов в реальном времени. Инструмент использует библиотеку picomatch для точного сопоставления шаблонов, позволяя разработчикам быстро тестировать свои glob-шаблоны перед их внедрением в конфигурационные файлы, скрипты или приложения. Интерфейс обеспечивает мгновенную обратную связь о том, какие пути соответствуют вашему шаблону, помогая вам уточнить и усовершенствовать glob-выражения.

Возможности

  • Сопоставление шаблонов в реальном времени: Мгновенно видите, какие пути соответствуют вашему glob-шаблону при вводе
  • Тестирование нескольких путей: Тестируйте шаблоны с несколькими путями файлов одновременно
  • Опции шаблонов: Настройка учета регистра и поведения сопоставления скрытых файлов
  • Визуальная обратная связь: Четкое указание соответствующих и несоответствующих путей с цветными значками
  • Табличные результаты: Организованное отображение результатов тестирования в чистой таблице
  • Обработка ошибок: Немедленная обратная связь о недопустимых шаблонах с сообщениями об ошибках
  • Статистика совпадений: Сводка, показывающая количество совпадений из общего числа протестированных путей

Случаи использования

  • Конфигурация сборки: Тестируйте glob-шаблоны для инструментов сборки, таких как Webpack, Vite или Rollup, перед добавлением в конфигурацию
  • Шаблоны Git ignore: Проверяйте шаблоны .gitignore, чтобы убедиться, что они соответствуют нужным файлам
  • Скрипты обработки файлов: Проверяйте шаблоны для выбора файлов в скриптах Node.js или инструментах автоматизации
  • Выбор тестовых файлов: Настройте тестовые программы (Jest, Mocha) для выбора правильных тестовых файлов
  • ESLint и Prettier: Тестируйте шаблоны файлов для конфигурации линтера и форматера
  • Документация: Проверяйте шаблоны для генераторов документации и обработчиков файлов
  • CI/CD конвейеры: Тестируйте шаблоны сопоставления путей для рабочих процессов непрерывной интеграции
  • Изучение синтаксиса glob: Экспериментируйте с glob-шаблонами, чтобы понять их поведение