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

Vite + React + Tailwind v4 正确配置指南(避免掉进 v3 的老坑)

Vite + React + Tailwind v4 正确配置指南(避免掉进 v3 的老坑)

很多同学在用 Vite + React 搭建项目时会选择 Tailwind CSS。
但是 Tailwind v4 与 v3 的配置差别很大,如果照着 v3 的教程去做,经常会报错或者样式不生效。
本文通过一个实战案例,带你理清 v3 和 v4 的区别,避免踩坑。


1. 环境准备

在开始之前,先准备一个 Vite + React 项目:

npm create vite@latest my-vite-app
cd my-vite-app
npm install

1.1 安装 Tailwind v4

运行以下命令安装最新的 Tailwind(注意当前最新版本号 4.x.x):

npm install -D tailwindcss postcss autoprefixer @tailwindcss/postcss

这里要特别注意:

  • v4 中,Tailwind 的 PostCSS 插件已经拆分成单独的包 @tailwindcss/postcss
  • 如果你继续用 tailwindcss: {} 作为 PostCSS 插件,就会报错。

1.1.1 创建配置文件

在项目根目录新建 postcss.config.js

export default {plugins: {'@tailwindcss/postcss': {},autoprefixer: {},},
}

在项目根目录新建 tailwind.config.js(虽然 v4 可以零配置,但建议显式指定 content 扫描范围):

/** @type {import('tailwindcss').Config} */
export default {content: ["./index.html", "./src/**/*.{js,jsx,ts,tsx}"],theme: {extend: {},},plugins: [],
}

1.1.1.1 编辑入口样式

src/index.css 中,只保留 一行

@import "tailwindcss";

⚠️ 注意:

  • v3 写法

    @tailwind base;
    @tailwind components;
    @tailwind utilities;
    
  • v4 写法

    @import "tailwindcss";
    

很多人就是在这里混淆了版本,结果导致样式不生效。
v4的配置如下图:
请添加图片描述


1.2 确认入口文件引入 CSS

src/main.jsx 中引入 index.css

import React from 'react'
import ReactDOM from 'react-dom/client'
import App from './App.jsx'
import './index.css'   // 必须引入 Tailwind 样式ReactDOM.createRoot(document.getElementById('root')).render(<React.StrictMode><App /></React.StrictMode>,
)

1.2.1 测试 Tailwind 是否生效

src/App.jsx 中写一个简单的例子:

export default function App() {return (<div className="min-h-screen flex items-center justify-center bg-gradient-to-r from-pink-300 to-blue-300"><h1 className="text-5xl font-bold text-white">Hello Tailwind v4 🎉</h1></div>)
}

运行项目:

npm run dev

浏览器中应能看到一个渐变背景,白色大号字体。
如下图:
请添加图片描述


2. 常见错误与对比

2.1 v3 配置方式

在 v3 中,你通常会这样写:

  • index.css

    @tailwind base;
    @tailwind components;
    @tailwind utilities;
    
  • postcss.config.js

    export default {plugins: {tailwindcss: {},autoprefixer: {},},
    }
    

2.2 v4 配置方式

而在 v4 中,需要改成:

  • index.css

    @import "tailwindcss";
    
  • postcss.config.js

    export default {plugins: {'@tailwindcss/postcss': {},autoprefixer: {},},
    }
    

2.2.1 总结对比

对比项Tailwind v3Tailwind v4
引入方式@tailwind base/components/utilities@import "tailwindcss";
PostCSS 插件tailwindcss: {}@tailwindcss/postcss: {}
是否需要配置必须写 tailwind.config.js可零配置,但推荐写 content
新手常见报错无法找到指令 / 样式不生效直接把 v3 配置抄过来就会报错

3. 结语

Tailwind v4 做了很多简化:

  • 入口 CSS 只要一句 @import "tailwindcss";
  • PostCSS 插件要用 @tailwindcss/postcss

但是因为很多教程还停留在 v3 版本,很多人(包括我自己 😅)会把配置搞混。
如果你发现 样式不生效 或者 报错找不到插件,十有八九就是 v3 和 v4 配置混淆了。

希望这篇文章能帮你少踩坑,更快地用上 Tailwind v4 🚀。


文章转载自:

http://qekZZqVW.ckctj.cn
http://VAef77ur.ckctj.cn
http://w1NLjafs.ckctj.cn
http://qNOh37Vt.ckctj.cn
http://IwpajR35.ckctj.cn
http://hENkcYCz.ckctj.cn
http://62Vwvx5Y.ckctj.cn
http://tnFAO8Bt.ckctj.cn
http://Jder4VZu.ckctj.cn
http://U778wmD8.ckctj.cn
http://AZ7sYbiX.ckctj.cn
http://MRu2OUzh.ckctj.cn
http://QIH685O2.ckctj.cn
http://OPtmFq3q.ckctj.cn
http://eiJjvazR.ckctj.cn
http://P1DDuONk.ckctj.cn
http://eA7LerNy.ckctj.cn
http://mgmuMB8P.ckctj.cn
http://lUJjamRi.ckctj.cn
http://UK5Ftg5d.ckctj.cn
http://w3m2EhvA.ckctj.cn
http://MT93Wj6F.ckctj.cn
http://eggvYd6x.ckctj.cn
http://HerD41vN.ckctj.cn
http://1Vd0Iy7s.ckctj.cn
http://kLkRpI0n.ckctj.cn
http://q9yEdPNT.ckctj.cn
http://1Cxzd6Ms.ckctj.cn
http://YKvsbk7V.ckctj.cn
http://yH87v71t.ckctj.cn
http://www.dtcms.com/a/363655.html

相关文章:

  • MyBatis 日志与调试技巧:让 SQL 执行过程完全透明
  • Node.js 命令行交互王者:inquirer 模块实战指南
  • 你们公司的 QPS 是怎么统计出来的?这 5 种常见方法我踩过一半的坑!
  • LazyLLM教程 | 第7讲:检索升级实践:亲手打造“更聪明”的文档理解系统!
  • Text2SQL与DataAgent技术深度对比与实践指南
  • 【算法笔记 day six】二分算法的第三部分
  • Linux下Qt样式配置
  • Qt内存映射到文件,解决打开大文件占用内存高的问题
  • Qt5 多媒体大纲
  • 基础算法之二分算法 --- 1
  • 基于SpringBoot的校园资料分享平台
  • 力扣242:有效的字母异位词
  • 漏扫工具使用
  • C++的演化历史
  • Windows控制台颜色修改
  • anaconda下载与pycharm解析器配置
  • TypeScript:内置高级类型
  • vue2 跟 vue3 对比总结
  • Java集合遍历的方法有哪些
  • T40N君正/INGENIC专业嵌入式CPU计算能力,集成XBurst2双核处理器(1.2GHz)、RISC-V协处理器和神经网络加速器(2TOPS算力)
  • 在 macOS 下升级 Python 几种常见的方法
  • 【LeetCode数据结构】栈和队列的应用
  • 洛谷P3811 【模板】模意义下的乘法逆元
  • 硬件开发1-51单片机1
  • 嵌入式 - 硬件:51单片机
  • LeetCode算法日记 - Day 29: 重排链表、合并 K 个升序链表
  • HTML第三课:特殊元素
  • CICD实战(3) - 使用Arbess+GitLab+Hadess实现Java项目构建/上传制品库
  • 人工智能之数学基础:分布函数对随机变量的概率分布情况进行刻画
  • PromptHero-最受欢迎的AI提示词网站