Skip to main content

Реестр компонентов

Цель и область применения

Реестр компонентов — это централизованная система метаданных, которая каталогизирует все компоненты в @ui8kit/core и обеспечивает несколько паттернов установки и использования. Реестр определен в src/registry.json1-281 и предоставляет структурированные метаданные, включая названия компонентов, типы, зависимости, пути к файлам и целевые директории. Эта страница документирует формат реестра, схему метаданных компонентов, процесс регистрации и то, как реестр поддерживает различные методы установки. Для получения информации о конвейере сборки, который генерирует артефакты реестра, см. Система сборки. Для получения подробной информации о распространении пакета см. Структура пакета. Источники: src/registry.json1-281 README.md251-276

Структура файла реестра

Реестр представляет собой JSON-файл, соответствующий схеме buildy-ui. Он содержит три свойства верхнего уровня: Источники: src/registry.json2-281

Диаграмма схемы реестра

Источники: src/registry.json2-10 src/registry.json278-281

Схема метаданных компонента

Каждая запись компонента в массиве items содержит следующие поля: Источники: src/registry.json4-17

Распределение типов компонентов

Реестр содержит 18 компонентов двух типов: Источники: src/registry.json2-276

Пример записи компонента

Компонент Button демонстрирует минимальную запись реестра:
Источники: src/registry.json156-169

Классификация зависимостей

Реестр отслеживает две категории зависимостей для каждого компонента:

Зависимости времени выполнения

Компоненты объявляют зависимости времени выполнения, которые должны быть установлены в приложении потребителя: Примечание: 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

Сопоставление путей к файлам

Каждая запись компонента сопоставляет исходные файлы с целевыми директориями в проекте потребителя:

Структура целевых директорий

Диаграмма сопоставления файлов

Источники: src/registry.json14-16 src/registry.json240-243 src/registry.json272-274

Генерация реестра

Реестр генерируется и поддерживается с помощью инструмента CLI buildy-ui:

Команда Scan

Скрипт scan в package.json26 выполняет сканер buildy-ui:
Эта команда:
  1. Сканирует директории компонентов (src/components/ui/, src/layouts/)
  2. Извлекает метаданные компонентов из исходных файлов
  3. Определяет зависимости путем анализа импортов
  4. Обновляет src/registry.json1-281 текущими метаданными
  5. Устанавливает временную метку lastUpdated на текущее время ISO 8601
Источники: package.json26 src/registry.json279

Команда Build Registry

Скрипт build:r в package.json27 генерирует артефакты для распространения:
Это создает опубликованный пакет реестра в packages/registry/ для программного доступа. Источники: package.json27-28

Интеграция с методами установки

Реестр поддерживает четыре различных паттерна установки:

Сравнение методов установки

Источники: README.md255-276

Поток установки по компонентам

Источники: README.md261-265 src/registry.json156-169

Программный доступ к реестру

Приложения могут импортировать JSON реестра для автоматизации и инструментов:

Структура данных реестра

Пример использования

Источники: README.md268-276 src/registry.json1-281

Покрытие компонентов

Реестр обеспечивает полное покрытие иерархии компонентов библиотеки:

Инвентаризация компонентов по слоям

Источники: src/registry.json1-276

Обслуживание реестра

Управление версиями

Реестр использует семантическое версионирование независимо от версии пакета:
  • Версия реестра: 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:
Примечание: registry.json не указан явно здесь, но включен в NPM tarball для программного доступа.

Отдельный пакет реестра

Скрипт publish в package.json28 публикует отдельный пакет реестра:
Это создает отдельный NPM пакет, содержащий только метаданные реестра для облегченного доступа инструментами CLI. Источники: package.json28 package.json39-42

Интеграция с конвейером сборки

Реестр взаимодействует с другими системами времени сборки:
Источники: package.json22-28 src/registry.json1-281

Резюме

Реестр компонентов служит единым источником истины для метаданных компонентов в @ui8kit/core. Он обеспечивает:
  1. Установку по компонентам через npx buildy-ui add [component]
  2. Программный доступ для инструментов и автоматизации
  3. Отслеживание зависимостей для выборочных установок
  4. Сопоставление путей к файлам от источника к целевым директориям
  5. Классификацию компонентов по типу (UI vs Layout)
Реестр автоматически поддерживается с помощью команды buildy-ui scan и распространяется через NPM вместе со скомпилированным пакетом. Источники: src/registry.json1-281 README.md251-276 package.json26-28