CLI
Форма вызова: create <путь> [флаги]. В TTY CLI спрашивает недостающее, без TTY работает полностью на флагах.
Пакет называется @vkma.dev/create-app, но каждый менеджер запускает его по-своему:
| Менеджер | Команда |
|---|---|
| npm | npm create @vkma.dev/app my-app -- --preset router |
| pnpm | pnpm create @vkma.dev/app my-app --preset router |
| yarn | yarn create @vkma.dev/app my-app --preset router |
| bun | bunx @vkma.dev/create-app my-app --preset router |
npm требует -- перед флагами — иначе перехватывает их как свои опции (сам разделитель до CLI не доходит). pnpm, yarn и bunx передают флаги как есть; голый --, если он всё же попадёт в argv, CLI молча отбрасывает вместе со всем, что после него, — не добавляй его к этим формам.
my-app — позиционный аргумент, каталог проекта относительно текущего. В интерактивном режиме без пути CLI спросит его (по умолчанию . — текущий каталог); без TTY скаффолд идёт в текущий каталог.
| Флаг | Значение |
|---|---|
--preset <id> |
Пресет: base, vkui или router (по умолчанию router) |
--pm <id> |
Менеджер пакетов: npm | pnpm | yarn | bun |
--no-install |
Не устанавливать зависимости после скаффолда |
--no-git |
Не инициализировать git-репозиторий |
-h, --help |
Справка |
Поддерживается и форма --flag=value: --preset=base, --pm=pnpm. Неизвестный флаг, второй позиционный аргумент или --preset без значения — ошибка с распечаткой справки.
--pm по умолчанию определяется по npm_config_user_agent: команда запуска сама сообщает, кто её вызвал (pnpm create … → pnpm). Если определить не удалось, в TTY CLI спросит (рекомендация — pnpm), без TTY упадёт с просьбой передать --pm явно.
Интерактивный режим
Заголовок раздела «Интерактивный режим»При подключённом TTY CLI спрашивает по очереди:
- каталог проекта (плейсхолдер
.); - пресет — список с описаниями, курсор на
router; - менеджер пакетов, если он не определился по окружению;
- устанавливать ли зависимости (запускается
<pm> install); - инициализировать ли git (
git init --quiet).
Каталог не пуст — CLI попросит подтверждение. Неизвестный пресет или менеджер — ошибка со списком допустимых.
Неинтерактивный режим (CI)
Заголовок раздела «Неинтерактивный режим (CI)»Без TTY вопросов нет, часть флагов становится обязательной:
--presetобязателен;--pmобязателен, если менеджер не определился по окружению;- непустой каталог — отказ без записи (в TTY на это спросит подтверждение).
npm create @vkma.dev/app my-app -- \ --preset base --pm npm --no-install --no-gitПосле скаффолда CLI печатает следующие шаги: cd в каталог, при --no-install ещё <pm> install, затем запуск dev-сервера в форме твоего менеджера (npm run dev, pnpm dev, bun run dev) и подсказку про деплой: проставь appId в vkma-deploy.config.ts, залогинься npx vkma-deploy login и вызови deploy — см. deploy.
Что именно генерируется — в структуре приложения.