Урок 17. Справочник: CLI и components.json

📁 Раздел: shadcn/ui ⏱️ Время изучения: ~50 мин 🎯 Сложность: Средняя

⚡ Кратко

init настраивает проект, add добавляет компоненты, components.json хранит ответы на вопросы CLI.

Ключи init

КлючЗначение
-t, --template <template>шаблон нового проекта: next, start, vite, react-router, laravel, astro
-b, --base <base>набор примитивов: base, radix, aria
-p, --preset [name]готовая конфигурация
-d, --defaultsзначения по умолчанию без вопросов
-y, --yesне спрашивать подтверждение
-f, --forceперезаписать существующую конфигурацию
-c, --cwd <cwd>рабочая директория
-n, --name <name>имя нового проекта
--css-variables / --no-css-variablesтемизация через CSS-переменные (по умолчанию включена)
--rtl / --no-rtlподдержка письма справа налево
--pointer / --no-pointerкурсор-указатель на кнопках
--monorepo / --no-monorepoструктура монорепозитория
--reinstall / --no-reinstallпереустановить уже добавленные компоненты
-s, --silentбез вывода

Ключи add

КлючЗначение
[components…]адреса элементов реестра
-y, --yesбез подтверждения
-o, --overwriteперезаписать существующие файлы
-a, --allдобавить все компоненты
-p, --path <path>куда положить файлы
-c, --cwd <cwd>рабочая директория
--dry-runпоказать изменения без записи
--diff [path]показать отличия от реестра
--view [path]показать содержимое файла
-s, --silentбез вывода

components.json

📄 components.json
{
  "$schema": "https://ui.shadcn.com/schema.json",
  "style": "base-nova",
  "rsc": false,
  "tsx": true,
  "tailwind": {
    "config": "",
    "css": "src/index.css",
    "baseColor": "neutral",
    "cssVariables": true,
    "prefix": ""
  },
  "iconLibrary": "lucide",
  "rtl": false,
  "aliases": {
    "components": "@/components",
    "utils": "@/lib/utils",
    "ui": "@/components/ui",
    "lib": "@/lib",
    "hooks": "@/hooks"
  },
  "menuColor": "default",
  "menuAccent": "subtle",
  "registries": {}
}
ПолеЧто задаёт
styleстиль реестра, например base-nova
rscдобавлять ли директиву "use client" (для Next.js)
tsxTypeScript или JavaScript
tailwind.cssпуть к главному CSS-файлу проекта
tailwind.baseColorбазовый нейтральный цвет темы: neutral, slate, zinc, stone, gray
tailwind.cssVariablesтемизация переменными (иначе — прямыми цветами)
tailwind.prefixпрефикс утилит, если он используется в проекте
tailwind.configпуть к конфигу v3; для v4 пустая строка
iconLibraryнабор иконок: lucide и другие
rtlподдержка письма справа налево
aliases.*куда класть компоненты, утилиты, хуки
registriesдополнительные реестры (свои или сторонние)
⚠️ Проверить по документации: поля menuColor и menuAccent относятся к оформлению стиля base-nova; их состав может отличаться в других стилях и версиях CLI.

Требования к проекту

ЧтоТребование
Tailwindверсия 4 (для v3 — старые инструкции и другой конфиг)
Алиас @/в конфигурации сборщика и в tsconfig
React19 (для актуального реестра)
Главный CSSимпортирован в приложение