当前位置: 首页 > 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 文档

相关文章:

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

使用 Vite React 19 集成 Tailwind CSS 与 shadcn/ui 组件库完整指南 🌟 前言一、创建 React 19 项目二、集成 Tailwind CSS1️⃣ 安装依赖2️⃣ 配置 Vite 插件3️⃣ 引入 Tailwind4️⃣ 启动项目 三、配置路径别名1️⃣ 修改 TypeScript 配置2️⃣ 安装类型声明3…...

【java】基本数据类型和引用数据类型

在 Java 中,数据类型分为 基本数据类型 和 引用数据类型。它们的本质区别在于存储方式和操作方式。下面我会详细解释这两种数据类型,并用通俗易懂的语言帮助你理解。 1. 基本数据类型(Primitive Data Types) 基本数据类型是 Java…...

mybatis-lombok工具包介绍

Lombok是一个实用的]ava类库,能通过注解的形式自动生成构造器、getter/setter、equals、hashcode、toString等方法,并可以自动化生成日志变量,简化java开发、提高效率。 使用前要加入Lombok依赖...

2. grafana插件安装并接入zabbix

一、在线安装 如果不指定安装位置,则默认安装位置为/var/lib/grafana/plugins 插件安装完成之后需要重启grafana 命令在上一篇讲到过 //查看相关帮助 [rootlocalhost ~]# grafana-cli plugins --help //从列举中的插件过滤zabbix插件 [rootlocalhost ~]# grafana…...

零基础学CocosCreator·第九季-网络游戏同步策略与ESC架构

课程里的版本好像是1.9,目前使用版本为3.8.3 开始~ 目录 状态同步帧同步帧同步客户端帧同步服务端ECS框架概念ECS的解释ECS的特点EntityComponentSystemWorld ECS实现逻辑帧&渲染帧 ECS框架使用帧同步&ECS 状态同步 一般游戏的同步策略有两种:…...

为什么配置Redis时候要序列化配置呢

序列化和反序列化?: 序列化:将对象转换为二进制数据,以便存储到Redis中。 反序列化:将Redis中的二进制数据转换回对象,以便在应用程序中使用。 1. 默认序列化器的问题 如果不配置序列化器,Re…...

使用爬虫获取1688商品分类:实战案例指南

在电商领域,获取商品分类信息对于市场分析、选品决策和竞争情报收集至关重要。1688作为国内领先的B2B电商平台,提供了丰富的商品分类数据。通过爬虫技术,我们可以高效地获取这些分类信息,为商业决策提供有力支持。 一、为什么选择…...

C#打印设计器

C# 打印设计器,功能强大却操作简单,小白也能快速上手! 主要功能: 支持多种设计元素: 文字、图片、图形、二维码、条形码等,满足您多样化的设计需求。 灵活排版,精准定位: 支持拖拽…...

Codeforces Round 1004 (Div. 2)(A-E)

题目链接&#xff1a;Dashboard - Codeforces Round 1004 (Div. 2) - Codeforces A. Adjacent Digit Sums 思路 只有两种情况&#xff1a;n1之后没有进位&#xff0c;y-x1。n1之后进位(y-x-1)%90。 代码 void solve(){int x,y;cin>>x>>y;if(y-x1){cout<<…...

pnpm的使用

pnpm的使用 1.安装和使用2.统一包管理工具下载依赖 1.安装和使用 pnpm:performant npm &#xff0c;意味“高性能的npm”。 pnpm由npm/yarn衍生而来,解决了npm/yarn内部潜在的bug,极大的优化了性能,扩展了使用场景。被誉为“最先进的包管理工具”。 pnpm安装指令: npm i -g p…...

vscode调试redis

系统&#xff1a;ubuntu redis&#xff1a;redis-6.0.3 1.在vs中安装c/c编译插件 2.用vscode打开redis-6.0.3 3.在菜单中找到run->Add Configuration… 4.会在目录中生成一个./vscode目录&#xff0c;里面包含launch.json,修改launch.json中的program:${workspaceFolder}…...

Windows逆向工程入门之汇编指令格式与操作数类型

公开视频 -> 链接点击跳转公开课程博客首页 -> ​​​链接点击跳转博客主页 目录 一、汇编指令格式基础 二、操作数类型详解 1. 立即数&#xff08;Immediate&#xff09; 2. 寄存器操作数&#xff08;Register&#xff09; 3. 内存操作数&#xff08;Memory&#…...

亚远景-ASPICE 4.0与敏捷开发:如何实现高效协同

ASPICE 4.0与敏捷开发的结合是汽车软件开发领域的重要趋势。通过合理融合&#xff0c;可以实现高效协同&#xff0c;提升软件开发的质量和效率。以下是实现高效协同的关键要点&#xff1a; 1. 理解ASPICE 4.0与敏捷开发的互补性 ASPICE 4.0强调软件开发过程的规范性、可追溯性…...

pptx文档提取信息

目录 一、前言二、python-pptx提取核心代码三、LibreOffice 转换pdf再提取的核心代码一、前言 pptx文档提取解析常用的库。 如果只需要解析 .pptx 的文本、表格、图片,推荐使用 python-pptx(开源,轻量级)。 如果需要高性能、支持 .ppt、动画、格式转换,推荐 Aspose.Slid…...

蓝桥杯篇---超声波距离测量频率测量

文章目录 简介第一部分&#xff1a;超声波的简介工作原理1.发射超声波2.接收反射波3.计算时间差4.计算距离 硬件连接1.Trig2.Echo 示例代码代码说明注意事项1.声速2.延时精度3.硬件连接 第二部分&#xff1a;频率测量简介频率测量原理1.信号输入2.计数3.计算频率 硬件连接示例代…...

ML.Net二元分类

ML.Net二元分类 文章目录 ML.Net二元分类前言项目的创建机器学习模型的创建添加模型选择方案训练环境的选择训练数据的添加训练数据的选择训练数据的格式要预测列的选择模型评估模型的使用总结前言 ‌ML.NET‌是由Microsoft为.NET开发者平台创建的免费、开源、跨平台的机器学习…...

vite让每个scss文件自动导入某段内容

写了如下一个scss函数&#xff0c;希望自动导入到每个scss文件里面 vite.config.ts里面如下配置 import fs from fsconst filePath resolve(__dirname, ./src/assets/css/index.scss);const Minxcss fs.readFileSync(filePath, utf8); css: {preprocessorOptions: {scss: {…...

分享一个使用的音频裁剪chrome扩展-Ringtone Maker

一、插件简介 铃声制作器是一个简单易用的 Chrome 扩展&#xff0c;专门用于制作手机铃声。它支持裁剪音频文件的特定片段&#xff0c;并将其下载为 WAV 格式&#xff0c;方便我们在手机上使用。无论是想从一段长音频中截取精彩部分作为铃声&#xff0c;还是对现有的音频进行个…...

基于Python的Optimal Interpolation (OI) 方法实现

前言 Optimal Interpolation (OI) 方法概述与实现 Optimal Interpolation (OI) 是一种广泛应用于气象学、海洋学等领域的空间数据插值方法。该方法通过结合观测数据与模型预测数据&#xff0c;最小化误差方差&#xff0c;从而实现对空间数据的最优插值。以下是OI方法的一般步骤…...

初学 mybatis

前言 回顾之前 不使用 mybatis 框架&#xff0c;我们是怎么通过Java 操作数据库的 "jdbc" 前提&#xff1a;使用maven 构建的项目 1 添加 关于jdbc 的依赖&#xff0c;以及辅助操作数据库的 commons-dubli jar包 截取 前后端项目 2 添加配置文件里面内容有&…...

EkyBot连接器:构建RPA与外部系统集成的中心化桥梁

1. 项目概述与核心价值 最近在折腾一些自动化流程&#xff0c;特别是想把不同平台的数据和操作打通&#xff0c;发现一个叫 regiomag/ekybot-connector 的项目挺有意思。简单来说&#xff0c;这是一个连接器&#xff0c;或者叫“桥梁”&#xff0c;专门用来把 EkyBot 这个自动…...

OpenBabel PDB氢原子添加的深度剖析与实战避坑指南

OpenBabel PDB氢原子添加的深度剖析与实战避坑指南 【免费下载链接】openbabel Open Babel is a chemical toolbox designed to speak the many languages of chemical data. 项目地址: https://gitcode.com/gh_mirrors/op/openbabel 第一部分&#xff1a;问题现场还原—…...

边走边聊 Python 3.8:SQLite WAL 事务机制详解(Win7 + Python 3.8 实战版)

SQLite WAL 事务机制详解(Win7 + Python 3.8 实战版) 大家好!我是你的 Win7 + Python 3.8 专属导师。在第14篇《数据库来了——SQLite + SQLAlchemy 实战》中,我们已经把知识库切换到了 SQLite 数据库,并提到 SQLALCHEMY_ENGINE_OPTIONS 的配置。今天这篇深度补充,专门拆…...

保姆级教程:手把手配置AUTOSAR SecOC中的FVM模块(基于多计数器截断模式)

保姆级教程&#xff1a;手把手配置AUTOSAR SecOC中的FVM模块&#xff08;基于多计数器截断模式&#xff09; 当你第一次拿到一份SecOC配置需求时&#xff0c;面对密密麻麻的参数表和陌生的术语&#xff0c;可能会感到无从下手。本文将以车门控制器为例&#xff0c;带你一步步完…...

构建模块化技能编排系统:Prime-Weaver架构设计与工程实践

1. 项目概述与核心价值最近在梳理个人技能栈和项目经验时&#xff0c;我重新审视了一个名为“prime-weaver-skill”的仓库。这个项目名称听起来有点抽象&#xff0c;但它的核心思想非常明确&#xff1a;构建一个能够将多种基础能力&#xff08;Prime&#xff09;高效编织&#…...

矢量网络分析仪维修全攻略:常见故障与排查方法科普

矢量网络分析仪(简称矢网)是射频微波领域核心测试仪器&#xff0c;广泛应用于通信、雷达、电子研发等行业&#xff0c;用于测量网络散射参数(S参数)。作为精密仪器&#xff0c;其长期高负荷运行、环境影响或操作不当易出现故障&#xff0c;影响测试精度与进度。矢网核心由射频前…...

下载安装 Temurin® JDK JDK 21 - LTS 速度很慢,有办法加速吗?

下载 Temurin JDK JDK 21 - LTS 速度很慢&#xff0c;有办法加速吗&#xff1f; 加速下载 Temurin JDK 21 的方法 方法一&#xff1a;清华大学 TUNA 镜像&#xff08;推荐 ⭐⭐⭐⭐⭐&#xff09; 这是目前最快、最稳定的国内镜像&#xff0c;速度可以跑满带宽。 直接访问目…...

Stackmoss:模块化工程化工具集,快速搭建现代开发技术栈

1. 项目概述&#xff1a;一个为现代开发栈而生的“瑞士军刀”最近在GitHub上闲逛&#xff0c;发现了一个名为“Stackmoss”的项目&#xff0c;作者是max-rogue。光看名字&#xff0c;你可能会联想到“栈”和“苔藓”——一种在特定环境下稳定生长的东西。这名字起得挺有意思&am…...

在变化中锚定管理本质,管理学经典书籍推荐

读书的意义在于不断校正认知。而经典、优秀的管理类书籍&#xff0c;会让你在面对复杂问题时&#xff0c;多一种思考路径。管理学领域从不缺少宏大的叙事方式。从工业时代对效率的极致榨取&#xff0c;到互联网时代对扁平化的顶礼膜拜&#xff0c;各种理论层出不穷。而如果要选…...

Tauri 2.0 + Next.js 16 桌面应用开发模板全解析

1. 项目概述与核心价值 如果你正在寻找一个能快速启动桌面应用开发的现代技术栈模板&#xff0c;那么 kvnxiao/tauri-nextjs-template 绝对值得你花时间研究。这个模板将两个看似不同领域的技术——用于构建现代Web前端的Next.js和用于创建跨平台桌面应用的Tauri——巧妙地结…...