Реестр компонентов
Цель и область применения
Реестр компонентов — это централизованная система метаданных, которая каталогизирует все компоненты в@ui8kit/core и обеспечивает несколько паттернов установки и использования. Реестр определен в src/registry.json1-281 и предоставляет структурированные метаданные, включая названия компонентов, типы, зависимости, пути к файлам и целевые директории.
Эта страница документирует формат реестра, схему метаданных компонентов, процесс регистрации и то, как реестр поддерживает различные методы установки. Для получения информации о конвейере сборки, который генерирует артефакты реестра, см. Система сборки. Для получения подробной информации о распространении пакета см. Структура пакета.
Источники: src/registry.json1-281 README.md251-276
Структура файла реестра
Реестр представляет собой JSON-файл, соответствующий схеме buildy-ui. Он содержит три свойства верхнего уровня:
Источники: src/registry.json2-281
Диаграмма схемы реестра
Схема метаданных компонента
Каждая запись компонента в массивеitems содержит следующие поля:
Источники: src/registry.json4-17
Распределение типов компонентов
Реестр содержит 18 компонентов двух типов:
Источники: src/registry.json2-276
Пример записи компонента
Компонент Button демонстрирует минимальную запись реестра:Классификация зависимостей
Реестр отслеживает две категории зависимостей для каждого компонента:Зависимости времени выполнения
Компоненты объявляют зависимости времени выполнения, которые должны быть установлены в приложении потребителя:
Примечание:
class-variance-authority, clsx и tailwind-merge являются зависимостями уровня пакета, определенными в package.json48-53 и не отслеживаются для каждого компонента.
Зависимости разработки
МассивdevDependencies присутствует во всех записях, но обычно пуст, поскольку зависимости разработки управляются на уровне пакета в package.json59-66
Источники: src/registry.json8-10 src/registry.json54-56 src/registry.json266-268 package.json48-53
Сопоставление путей к файлам
Каждая запись компонента сопоставляет исходные файлы с целевыми директориями в проекте потребителя:Структура целевых директорий
Диаграмма сопоставления файлов
Генерация реестра
Реестр генерируется и поддерживается с помощью инструмента CLIbuildy-ui:
Команда Scan
Скриптscan в package.json26 выполняет сканер buildy-ui:
- Сканирует директории компонентов (
src/components/ui/,src/layouts/) - Извлекает метаданные компонентов из исходных файлов
- Определяет зависимости путем анализа импортов
- Обновляет src/registry.json1-281 текущими метаданными
- Устанавливает временную метку
lastUpdatedна текущее время ISO 8601
Команда Build Registry
Скриптbuild:r в package.json27 генерирует артефакты для распространения:
packages/registry/ для программного доступа.
Источники: package.json27-28
Интеграция с методами установки
Реестр поддерживает четыре различных паттерна установки:Сравнение методов установки
Источники: README.md255-276
Поток установки по компонентам
Программный доступ к реестру
Приложения могут импортировать JSON реестра для автоматизации и инструментов:Структура данных реестра
Пример использования
Покрытие компонентов
Реестр обеспечивает полное покрытие иерархии компонентов библиотеки:Инвентаризация компонентов по слоям
Обслуживание реестра
Управление версиями
Реестр использует семантическое версионирование независимо от версии пакета:- Версия реестра: src/registry.json278 - В настоящее время “1.0.0”
- Версия пакета: package.json3 - В настоящее время “0.1.8”
Временная метка последнего обновления
ПолеlastUpdated в src/registry.json279 записывает время последнего изменения в виде строки ISO 8601:
npm run scan.
Источники: src/registry.json278-281 package.json3 package.json26
Распространение реестра
Реестр распространяется через два канала:Распространение через NPM пакет
JSON реестра включен в NPM пакет через полеfiles в package.json39-42:
Отдельный пакет реестра
Скриптpublish в package.json28 публикует отдельный пакет реестра:
Интеграция с конвейером сборки
Реестр взаимодействует с другими системами времени сборки:Резюме
Реестр компонентов служит единым источником истины для метаданных компонентов в@ui8kit/core. Он обеспечивает:
- Установку по компонентам через
npx buildy-ui add [component] - Программный доступ для инструментов и автоматизации
- Отслеживание зависимостей для выборочных установок
- Сопоставление путей к файлам от источника к целевым директориям
- Классификацию компонентов по типу (UI vs Layout)
buildy-ui scan и распространяется через NPM вместе со скомпилированным пакетом.
Источники: src/registry.json1-281 README.md251-276 package.json26-28