菜单

配置

相关源文件

本文档详细介绍了 components.json 配置文件、其模式以及它如何在添加组件到项目时控制 CLI 行为。该配置文件是 shadcn CLI 理解项目结构、依赖项和组件安装偏好的中心控制点。

有关 CLI 命令及其选项的信息,请参阅 CLI 工具。有关主题配置的特定信息,请参阅 主题和样式

目的与范围

components.json 文件是 shadcn CLI 工具的主要配置机制。它定义了组件应如何安装、放置在哪里以及如何为特定项目定制。CLI 读取此配置以了解项目结构、依赖项管理和样式偏好。

配置工作流程

来源:apps/www/content/docs/components-json.mdx6-14 apps/www/content/docs/cli.mdx8-11

配置文件结构

components.json 文件遵循定义的 JSON 模式,并包含几个控制 CLI 行为不同方面的顶级部分。

核心配置模式

来源:apps/www/content/docs/components-json.mdx24-214

Schema 验证

配置文件包含一个 $schema 属性,该属性引用官方 JSON 模式以进行验证和 IDE 支持。

属性目的
$schemahttps://ui.shadcn.org.cn/schema.json启用 JSON 模式验证和自动完成

来源:apps/www/content/docs/components-json.mdx24-32

样式配置

style 属性决定了组件的样式变体,在初始化后无法更改。

风格状态描述
new-york激活当前推荐样式
默认已弃用旧样式,请改用 new-york

来源:apps/www/content/docs/components-json.mdx34-44

Tailwind 集成

tailwind 部分配置了 CLI 如何与项目中的 Tailwind CSS 集成。

Tailwind 配置结构

来源:apps/www/content/docs/components-json.mdx46-116

CSS 变量 vs 工具类

cssVariables 设置控制了主题方法,并影响组件如何生成样式代码。

模式cssVariablesCSS 输出示例
CSS 变量true使用 CSS 自定义属性bg-background text-foreground
工具类false使用直接的 Tailwind 类bg-zinc-950 dark:bg-white

来源:apps/www/content/docs/theming.mdx6-64 apps/www/content/docs/components-json.mdx88-104

路径别名配置

aliases 部分定义了 CLI 用于将组件放置在正确项目位置的导入路径映射。

别名解析流程

来源:apps/www/content/docs/components-json.mdx142-214

别名映射表

别名目的示例值目标用途
utils实用函数@/lib/utilscn(),辅助验证函数
components通用组件@/components布局,自定义组件
uiUI 组件@/app/uiButton, Input, Dialog
lib库函数@/libformat-date, generate-id
hooks自定义 hooks@/hooksuse-media-query, use-toast

来源:apps/www/content/docs/components-json.mdx153-214

框架和语言配置

React 服务器组件支持

rsc 属性控制 CLI 是否向客户端组件添加 use client 指令。

行为
true自动向客户端组件添加 "use client"
false无 RSC 特定修改

来源:apps/www/content/docs/components-json.mdx118-128

TypeScript vs JavaScript

tsx 属性决定了生成组件时使用的文件扩展名和语法。

文件扩展名语言
true.tsxTypeScript
false.jsxJavaScript

来源:apps/www/content/docs/components-json.mdx130-140

配置验证和 CLI 集成

CLI 在初始化和添加组件时都会执行配置验证和项目检测。

CLI 配置流程

来源:apps/www/content/docs/components-json.mdx10-14 apps/www/content/docs/cli.mdx8-11

配置示例

components.json 配置的完整示例,展示了所有主要部分。

来源:apps/www/content/docs/theming.mdx16-35 apps/www/content/docs/components-json.mdx28-214