惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

宝玉的分享
宝玉的分享
B
Blog RSS Feed
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
MyScale Blog
MyScale Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
S
SegmentFault 最新的问题
Y
Y Combinator Blog
月光博客
月光博客
IT之家
IT之家
T
Tailwind CSS Blog
Last Week in AI
Last Week in AI
L
LangChain Blog
博客园_首页
MongoDB | Blog
MongoDB | Blog
P
Proofpoint News Feed
博客园 - Franky
WordPress大学
WordPress大学
云风的 BLOG
云风的 BLOG
M
MIT News - Artificial intelligence
V
Visual Studio Blog
小众软件
小众软件
博客园 - 叶小钗
博客园 - 三生石上(FineUI控件)
N
Netflix TechBlog - Medium

博客园 - 丁少华

adb提取本机apk 安卓ADB调试安卓 高德地图车机版本9.5制作共存 Taskfile 拆分子文件 go项目的taskfile Go 内嵌网页 windows的终端像mac一样好用 pgsql指定用户看到某个表 vue不使用根组件 Huma + Orval 前后端 API 自动生成方案 Mac安装nginx 不喜欢Go的几点 代码写错分支拯救指南 React UI 库推荐 Loop Engineering Vue 3 UI 组件库 Neon白嫖免费pgsql 域名利用cloudflare免费图床 nginx反代CloudflarePages提示502 vite使用biome Window下Nginx winserver2022安装不上软件 mac已损坏无法打开 代码高亮 命令运行器之task 命令运行器之just windows开启wsl 白嫖Redis 白嫖MongoDB vercel无服务函数
vite使用shadcn
丁少华 · 2026-05-02 · via 博客园 - 丁少华

参考这里 https://www.shadcn-ui.cn/docs/installation/vite

前置

需要项目提前集成好 taiwindcss,另外还需要配置好短路径,注意 tsconfig.json 和 tsconfig.app.json都要

resolve: {
    alias: {
      "@": path.resolve(__dirname, "./src"),
    },
  },

初始化

进入项目使用pnpm dlx shadcn@latest init,无特殊要求外均选择默认即可

? Select a component library › - Use arrow-keys. Return to submit.
❯   Radix
    Base

? Which preset would you like to use? › - Use arrow-keys. Return to submit.
❯   Nova - Lucide / Geist
    Vega
    Maia
    Lyra
    Mira
    Luma
    Sera
    Custom

优化

初始化项目后,会在生成 components/ui 用于存放你安装的shadcn组件,以及 components.json这个是shadcn的配置,还有一个src/lib/utils.ts 辅助工具。

但是,我对这个辅助工具不太满意,它迫使我项目多了些文件和文件夹

  • 我将生成的代码复制到utils/shadcn/utils.ts
  • 改变components.json
  • 重新安装组件即可
"aliases": {
   "utils": "@/utils/shadcn/utils",
   "lib": "@/utils/shadcn",
}

从此 utils/shadcn 就是shadcn 执行的时候自动生成的辅助工具的home目录了,我不关心它.

utils 不指定或指定的不叫 utils,也都会被指定为 utils.tsx,这揭示了 shadcn CLI 的一个“霸王条款”:无论你怎么命名你的文件,它的代码生成模板里那句 import { cn } from "..." 后面跟着的永远是 /utils。