@finzor-ui/cli
v0.4.0
Published
Finzor UI registry CLI: add recipe (copy-paste дистрибуция каталога recipes).
Readme
@finzor-ui/cli
CLI дистрибуции каталога Finzor UI. Копирует recipes в staging src/finzor-ui/ проекта потребителя.
Staging-структура
src/finzor-ui/ ← единая зона copy-paste (CLI пишет только сюда)
README.md ← создаётся при первом add
recipes/auth/login-email-password/- Импорты между артефактами — относительные (alias
@не нужен). toolingDependenciesиз манифестов (напр.sass-embedded) — с--installставятся как devDependencies.- Подключите
@finzor-ui/common/style.cssвmain.ts.
--dest — родитель staging (по умолчанию <cwd>/src → <dest>/finzor-ui/).
Как вызывать CLI
finzor-ui — бинарник пакета @finzor-ui/cli, не системная команда. В PATH он появляется только после установки пакета или через обёртку менеджера пакетов.
| Сценарий | Команда |
| -------- | ------- |
| Создать проект (папки ещё нет) | pnpm dlx @finzor-ui/cli … |
| Recipes в проекте (после add -D) | pnpm finzor-ui … |
| Глобально (опционально) | pnpm add -g @finzor-ui/cli → finzor-ui … |
Альтернативы pnpm dlx: npx @finzor-ui/cli, yarn dlx @finzor-ui/cli.
Создать приложение
Без установки CLI — через dlx (пакет на npmjs, .npmrc проекта не нужен):
pnpm dlx @finzor-ui/cli
pnpm dlx @finzor-ui/cli create my-app
pnpm dlx @finzor-ui/cli create . --app-name "My Portal"
pnpm dlx @finzor-ui/cli create --dir . --app-name "My Portal" --yes --install
pnpm dlx @finzor-ui/cli create my-app --install
pnpm dlx @finzor-ui/cli create my-app --proПапка установки (<dir> или --dir) и название приложения (--app-name) разделены. Для текущей директории укажи . (в интерактивном режиме тоже можно ввести .). Без --app-name имя по умолчанию берётся из имени папки.
При --pro (или ответе «да» в мастере) создаются .npmrc (токен inline, в .gitignore), .npmrc.example, .env и .env.example. Вводите только значение токена (finzor_…), не строку FINZOR_NPM_READ_TOKEN=… из monorepo. После create — обычный pnpm install.
Версии @finzor-ui/* в новом проекте: из registry (latest на момент create, Verdaccio при --pro) с fallback на шаблон. Шаблон CLI синхронизируется с монорепо перед publish (pnpm cli:sync-template-deps).
Recipes в существующем проекте
Установите CLI как devDependency (версия фиксируется в package.json):
# при Finzor UI PRO — .npmrc создаётся через create --pro (токен в .gitignore):
@finzor-ui:registry=https://registry.finzor.dev/
//registry.finzor.dev/:_authToken=finzor_...
pnpm add -D @finzor-ui/cliКоманды из корня проекта:
pnpm finzor-ui
pnpm finzor-ui list
pnpm finzor-ui add recipe auth/login-email-password --installРазовый запуск без add -D (из корня проекта):
pnpm dlx @finzor-ui/cli add recipe auth/login-email-password --installИспользование
Интерактивно (без аргументов — меню):
pnpm dlx @finzor-ui/cli
# или в проекте с установленным CLI:
pnpm finzor-uiСоздать приложение → Vue 3 + TypeScript + Vite
Рецепты → каталог / добавить в проект
Справка → pnpm dlx @finzor-ui/cli --helpОпции add recipe
| Флаг | Назначение |
| ---- | ---------- |
| --dest | родитель staging (default: <cwd>/src) |
| --install | npm + dev deps из манифестов |
| --force | перезапись внутри staging |
| --dry-run | без записи |
Монорепо (maintainer)
pnpm cli add recipe auth/login-email-password --dest /tmp/demo/src --dry-runПубликация (maintainer)
publishConfig.registry → npmjs (public). Релиз — общий pnpm release:publish (см. RELEASES.md).
Перед pack CLI автоматически:
bundle-registry.mjs— recipes в tarballsync-template-deps.mjs— версии@finzor-ui/*в шаблонеcreateиз workspace
Ручная синхронизация шаблона (нужен read-токен в .env: FINZOR_NPM_READ_TOKEN):
pnpm cli:sync-template-deps
pnpm cli:sync-template-deps:check # CI: fail если шаблон отстаётSync берёт опубликованные latest из registry (как у потребителя create --pro), не версии workspace.
Перенос в свою структуру
CLI не отслеживает, куда вы перенесли код. Повторный add снова кладёт в finzor-ui/ — смержите вручную.
