当前位置: 首页 > news >正文

使用 Vite + React 19 集成 Tailwind CSS 与 shadcn/ui 组件库完整指南

使用 Vite + React 19 集成 Tailwind CSS 与 shadcn/ui 组件库完整指南

    • 🌟 前言
    • 一、创建 React 19 项目
    • 二、集成 Tailwind CSS
      • 1️⃣ 安装依赖
      • 2️⃣ 配置 Vite 插件
      • 3️⃣ 引入 Tailwind
      • 4️⃣ 启动项目
    • 三、配置路径别名
      • 1️⃣ 修改 TypeScript 配置
      • 2️⃣ 安装类型声明
      • 3️⃣ 配置 Vite 别名解析
    • 四、集成 shadcn/ui 组件库
      • 1️⃣ 初始化配置
      • 2️⃣ 添加示例组件
    • 五、项目结构预览
    • 💡 常见问题
    • 🚀 最佳实践
    • 参考文档

Vite+React+Tailwind+shadcn

🌟 前言

随着 React 19 的发布,开发者对高效开发工具链的需求日益增加。本文将手把手教你如何通过 Vite 快速搭建 React 19 项目,并整合 Tailwind CSSshadcn/ui 组件库,最后配置路径别名优化开发体验。


一、创建 React 19 项目

使用 pnpm 快速初始化项目:

pnpm create vite --template=react-ts

按提示输入项目名称后进入项目目录。


二、集成 Tailwind CSS

1️⃣ 安装依赖

npm install tailwindcss @tailwindcss/vite

2️⃣ 配置 Vite 插件

修改 vite.config.ts

import { defineConfig } from 'vite'
import tailwindcss from '@tailwindcss/vite'export default defineConfig({plugins: [tailwindcss()],
})

3️⃣ 引入 Tailwind

修改 index.css, 顶部添加:

@import "tailwindcss";

4️⃣ 启动项目

npm run dev

三、配置路径别名

1️⃣ 修改 TypeScript 配置

tsconfig.json

{"compilerOptions": {"baseUrl": ".","paths": {"@/*": ["./src/*"]}}
}

tsconfig.app.json

{"compilerOptions": {"baseUrl": ".","paths": {"@/*": ["./src/*"]}}
}

2️⃣ 安装类型声明

pnpm add -D @types/node

3️⃣ 配置 Vite 别名解析

更新 vite.config.ts

import path from "path"
import { defineConfig } from "vite"export default defineConfig({resolve: {alias: {"@": path.resolve(__dirname, "./src"),},},
})

四、集成 shadcn/ui 组件库

1️⃣ 初始化配置

pnpm dlx shadcn@canary init

根据提示选择:

  • 使用 Tailwind CSS
  • 配置组件目录
  • 启用 dark mode

2️⃣ 添加示例组件

pnpm dlx shadcn@canary add sidebar-08

五、项目结构预览

my-project/
├── src/
│   ├── components/  # shadcn 组件
│   ├── App.tsx
│   └── style.css
├── vite.config.ts
├── tailwind.config.js
└── tsconfig.json

💡 常见问题

  1. React 19 兼容性:目前需使用 @canary 版本
  2. 样式不生效:检查 CSS 导入顺序
  3. 路径别名失效:重启 IDE 并验证配置

🚀 最佳实践

  • 使用 @/components 导入自定义组件
  • 定期更新 shadcn 组件库

参考文档

  • Vite 官方文档
  • Tailwind CSS v4 指南
  • shadcn/ui 文档
http://www.lryc.cn/news/537667.html

相关文章:

  • 【java】基本数据类型和引用数据类型
  • mybatis-lombok工具包介绍
  • 2. grafana插件安装并接入zabbix
  • 零基础学CocosCreator·第九季-网络游戏同步策略与ESC架构
  • 为什么配置Redis时候要序列化配置呢
  • 使用爬虫获取1688商品分类:实战案例指南
  • C#打印设计器
  • Codeforces Round 1004 (Div. 2)(A-E)
  • pnpm的使用
  • vscode调试redis
  • Windows逆向工程入门之汇编指令格式与操作数类型
  • 亚远景-ASPICE 4.0与敏捷开发:如何实现高效协同
  • pptx文档提取信息
  • 蓝桥杯篇---超声波距离测量频率测量
  • ML.Net二元分类
  • vite让每个scss文件自动导入某段内容
  • 分享一个使用的音频裁剪chrome扩展-Ringtone Maker
  • 基于Python的Optimal Interpolation (OI) 方法实现
  • 初学 mybatis
  • 机器学习:k均值
  • 保姆级GitHub大文件(100mb-2gb)上传教程
  • 1.【BUUCTF】[SUCTF 2019]EasyWeb
  • CloudberryDB(七)二级索引
  • P1878 舞蹈课(详解)c++
  • 何须付费免费它不香吗
  • ELK组成及实现原理
  • 【Vue3源码解析】响应式原理
  • servlet中的ServletContext
  • 第1825天 | 我的创作纪念日:缘起、成长经历、大方向
  • 如何在 Mac 上解决 Qt Creator 安装后应用程序无法找到的问题