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

<Meta title='@dxtmisha/ru/scripts/bin/dxt-package - Инициализация структуры пакетов'/>

# dxt-package

Команда `dxt-package` автоматизирует инициализацию структуры нового пакета и среды разработки на основе предопределенных шаблонов. Под капотом она использует классы `PackageInit` и `PackageInitItem` для обработки пустых директорий пакетов и их соответствующего заполнения.

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

- **Автоматическое сканирование директорий**: Автоматически сканирует настроенную базовую директорию (по умолчанию `packages/`) и выявляет пустые папки пакетов, требующие инициализации.
- **Генерация на основе шаблонов**: Поддерживает применение конкретных шаблонов для настройки процесса генерации, адаптируя создаваемую структуру в зависимости от указанного `type` пакета.
- **Гибкая настройка**: Позволяет переопределять тип пакета по умолчанию, шаблоны и целевую базовую директорию через аргументы командной строки.

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

Процесс инициализации пакета упрощает создание новых пакетов:

1. Скрипт считывает переданные аргументы для определения типа пакета `type` (по умолчанию `library`), шаблонов `templates` и целевой директории `dir`.
2. Он сканирует целевую директорию, чтобы найти любые пустые папки (директории без дочерних элементов).
3. Для каждой найденной пустой директории инициализируется экземпляр `PackageInitItem`, в который передаются путь пакета, тип и шаблоны.
4. Затем система обрабатывает эти конфигурации для генерации необходимых файлов и структуры среды для пакета, подготавливая его к разработке.

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

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

Чтобы указать пользовательский тип пакета (например, `vue`), выполните:
```bash
npx dxt-package vue
```

Чтобы указать пользовательский тип и применить конкретные шаблоны, передайте их в качестве аргументов:
```bash
npx dxt-package vue "template1,template2"
```

Вы также можете указать пользовательскую базовую директорию в качестве третьего аргумента:
```bash
npx dxt-package vue "template1" "packages/custom-dir"
```

## Генерируемая структура

Когда команда обрабатывает пустую директорию, она создает базовые файлы, необходимые для заданного типа пакета и шаблонов. Обычно это включает структурные файлы, базовые конфигурации и точки входа, превращая пустую папку в полнофункциональную среду пакета внутри рабочего пространства.
