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

推荐订阅源

月光博客
月光博客
J
Java Code Geeks
F
Fortinet All Blogs
Blog — PlanetScale
Blog — PlanetScale
P
Proofpoint News Feed
U
Unit 42
B
Blog
宝玉的分享
宝玉的分享
腾讯CDC
Microsoft Azure Blog
Microsoft Azure Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
Last Week in AI
Last Week in AI
博客园 - Franky
博客园 - 三生石上(FineUI控件)
人人都是产品经理
人人都是产品经理
Martin Fowler
Martin Fowler
博客园_首页
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
云风的 BLOG
云风的 BLOG
L
LangChain Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Y
Y Combinator Blog
The GitHub Blog
The GitHub Blog
博客园 - 叶小钗

博客园 - 丁少华

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。