Shadcn 清理记录
项目从 shadcn 迁移至 HeroUI 的完整清理记录
Shadcn 清理记录
项目从 shadcn 迁移至 HeroUI,以下为完整清理内容。
一、packages/ui — 移除 shadcn 组件包
删除的文件结构
components.json
保留文件
| 路径 | 说明 |
|---|---|
src/styles/globals.css | 仅含 @import "tailwindcss" + HeroUI 样式导入 |
src/index.ts | 空文件,供 tsc 通过 |
移除的依赖
从 packages/ui/package.json 移除:
shadcn, @base-ui/react, class-variance-authority, clsx,
tailwind-merge, lucide-react, sonner, tw-animate-css, next-themeslucide-react 从 packages/ui 移除仅因为该包已无组件文件。它仍保留在 apps/web/package.json 中(loader.tsx 在用),且 HeroUI 生态后续也可能用到,不做删除。
二、apps/web — 移除使用 shadcn 的页面和组件
删除的文件结构
components.json
保留文件
| 路径 | 说明 |
|---|---|
src/components/area-chart-demo.tsx | 使用 HeroUI Pro,不受影响 |
src/components/loader.tsx | 仅用 lucide-react,不受影响 |
src/routes/index.tsx | 首页,引用 area-chart-demo |
__root.tsx 变更
| 操作 | 内容 |
|---|---|
| 移除 | Toaster (sonner)、ThemeProvider (next-themes)、Header、trpc 类型引用 |
| 保留 | HeadContent、Outlet、TanStackRouterDevtools、ReactQueryDevtools |
utils/trpc.ts 变更
toast.error(...) 替换为 console.error(...),sonner 移除后的临时替代。
移除的依赖
从 apps/web/package.json 移除:
sonner, next-themes, embla-carousel, embla-carousel-react, tailwind-merge三、根目录 — 清理 catalog
package.json 的 workspaces.catalog 移除了 next-themes: "^0.4.6",整个 monorepo 已无引用。
什么是 catalog? Bun workspace 的集中版本管理机制。子包用 "catalog:" 引用声明好的版本号,避免各写一遍。仅当整个 monorepo 无人使用时才从 catalog 删除。
四、配置清理
| 文件 | 变更 |
|---|---|
packages/ui/tsconfig.json | 移除 @my-better-t-app/ui/* path mapping |
apps/web/tsconfig.json | 移除 @my-better-t-app/ui/* path mapping,保留 @/* |
apps/web/components.json | 删除 |
五、验证
安装依赖
bun install构建验证
vite build确认无残留
grep -rn "shadcn\|@my-better-t-app/ui/components\|next-themes\|sonner" \
apps/web/src/ packages/ui/src/
# 返回空How is this guide?
Last updated on