import {Meta} from '@storybook/addon-docs/blocks'

<Meta title='@dxtmisha/ru/scripts/bin/dxt-library - Генератор точки входа библиотеки'/>

# dxt-library

Команда `dxt-library` представляет собой CLI-утилиту для генерации консолидированной точки входа (`src/library.ts`) для всей библиотеки UI. Под капотом она использует класс `LibraryExport` для сканирования основных подпапок и динамической компиляции всех экспортов в единый публичный интерфейс.

## Ключевые возможности

- **Единая точка входа**: Компилирует несколько директорий в один оптимизированный интерфейс экспорта.
- **Умная обработка модулей**: Автоматически генерирует экспорты со звездочкой для TypeScript-утилит и именованные экспорты для Vue-компонентов.
- **Интеллектуальная фильтрация**: Исключает файлы юнит-тестов и файлы, помеченные специальной директивой исключения экспорта.
- **Интеграция глобальных стилей**: Автоматически включает глобальные стили в сгенерированный файл точки входа.

## Как это работает?

Процесс компиляции точки входа автоматизирует сборку экспортов всех модулей:

1. Скрипт сканирует указанные исходные поддиректории (`classes`, `components`, `composables`, `functions`, `global`, `types`) с помощью инструментов рекурсивного чтения директорий.
2. Он отфильтровывает файлы юнит-тестов (содержащие `.test.`) и файлы, содержимое которых совпадает с директивой `// export:none`.
3. Для каждого валидного файла TypeScript (`.ts`) он добавляет стандартный экспорт со звездочкой.
4. Для каждого файла Vue SFC (`.vue`) он генерирует импорт и сопоставляет его с именованным экспортом константы для чистого использования.
5. Он проверяет наличие файлов `style.scss` или `style.css` в базовой входной директории и добавляет их импорт в начало файла, если они найдены.
6. Он записывает скомпилированный код напрямую в файл `src/library.ts`.

## Настройка и запуск

Для запуска генератора точки входа библиотеки не требуется сложных настроек. Скрипт автоматически считывает конфигурации и обрабатывает предустановленные директории экспорта.

Чтобы запустить процесс генерации, выполните:
```bash
npx dxt-library
```

## Структура генерируемых файлов

После успешного выполнения инструмент создает или обновляет следующий файл в пакете:

- `src/library.ts`: Единая точка входа, содержащая все импорты, именованные экспорты компонентов и экспорты со звездочкой.
