用途:讲解 shadcn 注册表的 schema 与托管模型。注册表不是包索引,而是代码分发协议:它提供组件、区块、钩子、主题等条目的 JSON 描述,CLI 拉取后把内嵌文件写入使用方项目。每个项目的 components.json 决定文件写入位置与读取哪些注册表。
主要能力:区分默认 @shadcn 注册表与自定义注册表;支持短形式(命名空间映射 URL 模板)和对象形式(url、headers、params);请求携带 User-Agent: shadcn 与 Accept: application/vnd.shadcn.v1+json;URL 模板支持 {name}(必需)和 {style}(可选)占位符;headers、params、url 中可用 ${VAR} 从 process.env 展开,变量未设置时替换为空字符串且不报错。
使用方式:仅在需要私有组件、付费注册表或发布给其他团队消费时才配置 registries;未声明命名空间不会回退到 @shadcn,裸名称才走默认注册表。自建注册表需编写 registry.json,运行 shadcn build 生成 ./public/r/*.json 并静态托管。条目类型包括 registry:ui、component、block、hook、lib、page、file、style、theme。
限制:components.json 中 style、tailwind.baseColor、tailwind.cssVariables 在 init 后不可变,别名变更不会重写已有导入;Tailwind v3 需 config 字段且用 HSL,v4 必须省略该字段并使用 oklch;URL 模板必须含 {name};不得同时定义 tsconfig 路径与 package.json#imports 同名别名;密钥应放 .env.local 或 CI,不应提交到仓库。命令语法见 shadcn-core-cli,本页不重复。暂无收费或价格信息。