13 августа 2026 г.
Ставить код из реестров можно в любом проекте: shadcn CLI читает конфиг из package.json
В shadcn CLI 4.18.0 от 13 августа файл components.json перестал быть обязательным: хватает package.json.

shadcn
@shadcn
shadcn cli теперь читает конфиг registries из package.json. Значит, если вы распространяете не компоненты, а другой код, components.json не нужен. Работает со всем остальным: add, search, view. Теперь любой проект может ставить код из реестров.

· 13,3 тыс. просмотров
Команда `shadcn registry add` в обычном проекте падала с ошибкой «No components.json found».
В версии 4.18.0 от 13 августа она пишет реестр в components.json, если тот на месте, а иначе прямо в package.json. Ключ конфига — поле верхнего уровня `"registries"`, формат тот же, что был.
Порог входа пропал. Любой проект, где лежит package.json, теперь ставит код из чужих реестров, и отдельный конфиг shadcn под это больше не заводят.
Как подключить свой реестр
Обнови CLI. В npm тег latest указывает на shadcn 4.18.0, опубликованный 13 августа. Ставить пакет не обязательно: `pnpm dlx shadcn@latest` или `npx shadcn@latest`.
В package.json добавляешь поле `"registries"`: `"@acme": "https://acme.com/{name}.json"`. Нужен приватный доступ - вместо строки кладёшь объект с url, headers и params, токен подставляется из переменной окружения. Дальше всё как раньше, `pnpm dlx shadcn@latest add @acme/button`, и несколько элементов за один вызов.
Одна засада. В проекте без components.json встроенные реестры не подмешиваются: namespace `@shadcn` объявляешь руками.
Когда оба файла на месте, конфиги сливаются в порядке BUILTIN → package.json → components.json, побеждает самый специфичный ключ. До этого патча components.json полностью гасил реестры из package.json. Половина фичи выехала ещё 27 июля в версии 4.16.0, но пользовались ею только те, кто дёргает CLI через API.
первоисточник