本文档提供了将 shadcn/ui 组件与各种 React 框架和构建工具集成的全面指南。它涵盖了框架特定的设置过程、配置要求以及支持平台之间 CLI 的行为差异。
有关不使用 CLI 手动安装组件的信息,请参阅 手动安装。有关 CLI 配置系统的详细信息,请参阅 配置。
shadcn/ui CLI 支持对多种基于 React 的框架和构建工具进行自动框架检测和配置。每个框架对 TypeScript 配置、路径别名和构建工具设置都有特定要求。
| 框架 | CLI 支持 | 自动检测 | Tailwind v4 | React 19 |
|---|---|---|---|---|
| Next.js | 完整版 | ✅ | ✅ | ✅ |
| Vite | 完整版 | ✅ | ✅ | ✅ |
| Remix | 完整版 | ✅ | ✅ | ✅ |
| Astro | 完整版 | ✅ | ✅ | ✅ |
| Laravel | 完整版 | ✅ | ✅ | ✅ |
| React Router | 完整版 | ✅ | ✅ | ✅ |
| TanStack Start | 完整版 | ✅ | ✅ | ✅ |
| TanStack Router | 完整版 | ✅ | ✅ | ✅ |
| Gatsby | 部分 | ✅ | ⚠️ | ⚠️ |
来源:apps/www/config/docs.ts118-165
在 init 命令期间,CLI 会自动检测您的框架并应用适当的配置设置。
来源:apps/www/content/docs/installation/next.mdx15-19 apps/www/content/docs/installation/vite.mdx105-111
每个框架在组件安装和文件结构方面都有不同的要求。
来源:apps/www/content/docs/installation/remix.mdx53-56 apps/www/content/docs/installation/laravel.mdx28-32
Next.js 提供了最简单的集成路径,具有自动框架检测和最低的配置要求。
@/ 导入别名CLI 自动配置
tsconfig.json 中)来源:apps/www/content/docs/installation/next.mdx11-46
Vite 需要额外的 TypeScript 路径解析和 Tailwind CSS 集成配置。
tailwindcss 和 @tailwindcss/vitetsconfig.json 和 tsconfig.app.jsonvite.config.ts 中进行路径别名解析来源:apps/www/content/docs/installation/vite.mdx78-101 apps/www/content/docs/installation/vite.mdx86-100
Remix 需要特定的 PostCSS 配置,并使用不同的导入别名约定。
postcss.config.js 文件remix.config.js 中启用 Tailwind 和 PostCSS~/ 前缀而不是 @/app/components/ui/app/components/app/lib/app/tailwind.css来源:apps/www/content/docs/installation/remix.mdx53-57 apps/www/content/docs/installation/remix.mdx64-85
Astro 集成需要 React 模板设置和 TypeScript 路径配置。
--template with-tailwindcss --add react 标志tsconfig.json 路径设置.astro 文件中使用来源:apps/www/content/docs/installation/astro.mdx15-19 apps/www/content/docs/installation/astro.mdx22-38
Laravel 集成利用 Inertia.js 和 React,并遵循 Laravel 的目录约定。
laravel new --react 进行 Inertia.js 设置resources/js/components/ui/resources/js/ 的 @/ 别名来源:apps/www/content/docs/installation/laravel.mdx15-19 apps/www/content/docs/installation/laravel.mdx28-44
Gatsby 支持包括用于路径解析的其他 webpack 配置。
gatsby-node.ts 文件tsconfig.json 配置./src/styles/globals.css 约定来源:apps/www/content/docs/installation/gatsby.mdx61-78
React Router 提供了与新的 React Router 框架的简化集成。
npx create-react-router@latestshadcn init 过程来源:apps/www/content/docs/installation/react-router.mdx8-12 apps/www/content/docs/installation/react-router.mdx32-51
根据其约定,不同框架会生成不同的 components.json 配置。
| 框架 | UI 路径 | Utils 路径 | 别名前缀 | CSS 路径 |
|---|---|---|---|---|
| Next.js | @/components/ui | @/lib/utils | @/ | app/globals.css |
| Vite | @/components/ui | @/lib/utils | @/ | src/index.css |
| Remix | ~/components/ui | ~/lib/utils | ~/ | app/tailwind.css |
| Laravel | @/components/ui | @/lib/utils | @/ | resources/css/app.css |
| Astro | @/components/ui | @/lib/utils | @/ | src/styles/globals.css |
来源: apps/www/content/docs/installation/remix.mdx38-43 apps/www/content/docs/installation/gatsby.mdx88-102
所有框架都支持 Tailwind v3 和 v4,但需要不同的 CLI 版本。
shadcn@latest(新项目默认)shadcn@2.3.0 以支持旧版本特定于框架的 Tailwind v4 功能包括
@import "tailwindcss" 语法@tailwindcss/vite Vite 插件来源: apps/www/content/docs/installation/next.mdx6-9 apps/www/content/docs/installation/vite.mdx6-9 apps/www/content/docs/tailwind-v4.mdx19-32