11---
2- title : Tailwind CSS 3.x 生成模式安装与配置
3- description : 使用 weapp-tailwindcss v5 默认生成模式接入 Tailwind CSS 3.x。
2+ title : 快速使用
3+ description : 使用 weapp-tailwindcss v5 接入 Tailwind CSS 3.x 或 4.x,并按框架注册构建器插件 。
44keywords :
55 - 快速开始
66 - 安装
77 - 配置
88 - tailwindcss
99 - tailwindcss 3
10+ - tailwindcss 4
1011 - generator
1112 - weapp-tailwindcss
1213 - 小程序
@@ -17,30 +18,62 @@ keywords:
1718 - mpx
1819---
1920
20- # Tailwind CSS 3.x 生成模式安装与配置
21+ # 快速使用
2122
22- ` weapp-tailwindcss@5 ` 默认使用生成模式。Tailwind CSS 3.x 项目继续使用 ` tailwind.config.js ` 的 ` content ` 扫描范围,但样式生成由 ` WeappTailwindcss ` 构建器插件接管,不再把 ` tailwindcss ` 注册到 PostCSS。
23+ ` weapp-tailwindcss@5 ` 默认使用生成模式。你只需要做两件事:
2324
24- ## 1. 安装依赖
25+ 1 . 选择 ` tailwindcss@3 ` 或 ` tailwindcss@4 ` ,准备 Tailwind CSS 入口。
26+ 2 . 按你的框架注册 ` WeappTailwindcss ` 构建器插件,并把 ` cssEntries ` 指向同一个入口 CSS。
2527
26- ``` bash npm2yarn
27- npm i -D tailwindcss@3 weapp-tailwindcss
28+ 也就是说,框架注册方式基本是一套;真正不同的是 Tailwind CSS 入口和扫描配置。
29+
30+ ## 1. 选择 Tailwind CSS 版本
31+
32+ | 版本 | 推荐场景 | 安装命令 | 样式入口 | 扫描范围 |
33+ | --- | --- | --- | --- | --- |
34+ | Tailwind CSS 3.x | 追求兼容性、存量项目、暂不迁移 CSS-first | ` pnpm add -D tailwindcss@3 weapp-tailwindcss ` | ` @tailwind base; ` 等指令 | ` tailwind.config.js ` 的 ` content ` |
35+ | Tailwind CSS 4.x | 新项目、希望使用 CSS-first 配置 | ` pnpm add -D tailwindcss weapp-tailwindcss ` | ` @import "tailwindcss"; ` | CSS 入口里的 ` @source ` |
36+
37+ :::tip 推荐选择
38+ 如果你不确定应该选哪个版本,优先选 ` tailwindcss@3 ` ,兼容性更稳。准备新项目并且能接受 Tailwind CSS 4 的 CSS-first 写法时,再选 ` tailwindcss@4 ` 。
39+ :::
40+
41+ ## 2. 安装依赖
42+
43+ ### Tailwind CSS 3.x
44+
45+ ``` bash
46+ pnpm add -D tailwindcss@3 weapp-tailwindcss
47+ pnpm exec tailwindcss init
2848```
2949
30- ``` bash npm2yarn
31- npx tailwindcss init
50+ ### Tailwind CSS 4.x
51+
52+ ``` bash
53+ pnpm add -D tailwindcss weapp-tailwindcss
3254```
3355
34- 如果项目已经有 ` postcss.config.js ` ,可以继续保留 ` postcss-import ` 、 ` autoprefixer ` 或框架内置插件等非 Tailwind 后处理插件;不要再添加 ` tailwindcss ` PostCSS 插件 。
56+ ` weapp-tailwindcss@5 ` 会在构建运行时接管 Tailwind CSS 生成。不要再为了小程序构建额外注册 ` tailwindcss ` 、 ` @tailwindcss/postcss ` 或 ` @tailwindcss/vite ` 。
3557
36- ## 2. 配置扫描范围
58+ 如果项目已有 ` postcss.config.* ` ,可以保留业务自己的非 Tailwind 插件。
59+
60+ ## 3. 准备 CSS 入口
61+
62+ 无论使用 Tailwind CSS 3 还是 4,都建议创建一个纯 ` .css ` 文件作为小程序 Tailwind 入口,例如 ` src/app.css ` 。后续 ` cssEntries ` 就指向这个文件。
63+
64+ ### Tailwind CSS 3.x 入口
65+
66+ ``` css title="src/app.css"
67+ @tailwind base;
68+ @tailwind components;
69+ @tailwind utilities;
70+ ```
3771
3872``` js title="tailwind.config.js"
3973/** @type {import('tailwindcss').Config} */
4074module .exports = {
4175 content: [
42- ' ./public/index.html' ,
43- ' ./src/**/*.{html,js,ts,jsx,tsx,vue,wxml,axml,ttml,mpx}' ,
76+ ' ./src/**/*.{html,js,ts,jsx,tsx,vue,wxml,axml,ttml,mpx,uts,uvue}' ,
4477 ' !./src/uni_modules/**/*' ,
4578 ' !./node_modules/**/*' ,
4679 ' !./dist/**/*' ,
@@ -52,39 +85,146 @@ module.exports = {
5285}
5386```
5487
55- ` content ` 应只覆盖业务源码。` uni_modules ` 、` node_modules ` 、` dist ` 、` unpackage ` 、文档和构建产物默认都应排除;如果必须扫描某个第三方包,请精确包含承载模板类名的文件。
56-
57- ## 3. 添加 CSS 入口
58-
59- Tailwind CSS 3.x 入口仍使用 ` @tailwind ` 指令:
88+ ### Tailwind CSS 4.x 入口
6089
6190``` css title="src/app.css"
62- @tailwind base;
63- @tailwind components;
64- @tailwind utilities;
91+ @import " tailwindcss" ;
92+ @source "./**/*.{html,js,ts,jsx,tsx,vue,wxml,axml,ttml,mpx,uts,uvue}";
93+ @source not "./uni_modules";
94+ @source not "../node_modules";
95+ @source not "../dist";
96+ @source not "../unpackage";
6597```
6698
67- 这个文件需要在框架入口中引入,并在 ` WeappTailwindcss ` 的 ` cssEntries ` 中作为绝对路径传入。这样生成器、模板转译和 JS 转译会共享同一份 classSet。
99+ :::warning
100+ ` tailwindcss@4 ` 的入口请只放在纯 ` .css ` 文件里,不要直接放进 ` scss ` 、` less ` 、` sass ` 文件。业务预处理样式可以再间接引入这个 CSS 入口。
101+ :::
68102
69103## 4. 注册构建器插件
70104
71- 不同框架的注册位置不同,但原则一致:只注册 ` WeappTailwindcss ` ,不要再注册 Tailwind 官方生成插件。
105+ 这里是所有框架共同的原则:
106+
107+ - Vite 链路使用 ` weapp-tailwindcss/vite `
108+ - Webpack 链路使用 ` weapp-tailwindcss/webpack `
109+ - ` cssEntries ` 必须指向 Tailwind CSS 入口文件的绝对路径
110+ - 不要再为小程序构建注册 Tailwind 官方 Vite / PostCSS 生成插件
111+
112+ ### Vite 通用写法
113+
114+ 适用于 ` uni-app Vue3 Vite ` 、` HBuilderX Vue3 Vite ` 、` weapp-vite ` 、` Taro Vite ` 等构建链路。` uni-app ` 项目中 ` WeappTailwindcss ` 要放在 ` uni() ` 后面。
115+
116+ ``` ts title="vite.config.ts"
117+ import path from ' node:path'
118+ import { defineConfig } from ' vite'
119+ import { WeappTailwindcss } from ' weapp-tailwindcss/vite'
72120
73- | 框架 | 构建入口 | 注册位置 | 文档 |
121+ export default defineConfig ({
122+ plugins: [
123+ WeappTailwindcss ({
124+ rem2rpx: true ,
125+ cssEntries: [
126+ path .resolve (__dirname , ' src/app.css' ),
127+ ],
128+ }),
129+ ],
130+ })
131+ ```
132+
133+ ### Webpack 通用写法
134+
135+ 适用于 ` Taro Webpack ` 、` uni-app CLI Vue2 Webpack ` 、` Mpx ` 、` Rax ` 等构建链路。不同框架的 Webpack 配置入口不同,请按下方框架表进入对应页面复制完整写法。
136+
137+ ``` js title="webpack config"
138+ const path = require (' node:path' )
139+ const { WeappTailwindcss } = require (' weapp-tailwindcss/webpack' )
140+
141+ module .exports = {
142+ plugins: [
143+ new WeappTailwindcss ({
144+ rem2rpx: true ,
145+ cssEntries: [
146+ path .resolve (__dirname , ' src/app.css' ),
147+ ],
148+ }),
149+ ],
150+ }
151+ ```
152+
153+ ### uni-app x 写法
154+
155+ ` uni-app x ` 推荐使用内置预设:
156+
157+ ``` ts title="vite.config.ts"
158+ import { defineConfig } from ' vite'
159+ import uni from ' @dcloudio/vite-plugin-uni'
160+ import { WeappTailwindcss } from ' weapp-tailwindcss/vite'
161+ import { uniAppX } from ' weapp-tailwindcss/presets'
162+
163+ export default defineConfig ({
164+ plugins: [
165+ uni (),
166+ WeappTailwindcss (
167+ uniAppX ({
168+ base: __dirname ,
169+ rem2rpx: true ,
170+ }),
171+ ),
172+ ],
173+ })
174+ ```
175+
176+ ## 5. 各框架完整接入
177+
178+ | 框架 | 构建工具 | Tailwind CSS 3.x | Tailwind CSS 4.x |
74179| --- | --- | --- | --- |
75- | uni-app Vue3 Vite | ` weapp-tailwindcss/vite ` | ` vite.config.ts ` 的 ` plugins ` | [ uni-app cli vue3 vite] ( /docs/quick-start/frameworks/uni-app-vite ) |
76- | Taro Webpack | ` weapp-tailwindcss/webpack ` | ` config/index.ts ` 的 ` mini.webpackChain ` | [ Taro] ( /docs/quick-start/frameworks/taro ) |
77- | Taro Vite | ` weapp-tailwindcss/vite ` | ` config/index.ts ` 的 ` compiler.vitePlugins ` | [ Taro] ( /docs/quick-start/frameworks/taro ) |
78- | weapp-vite 原生小程序 | ` weapp-tailwindcss/vite ` | ` vite.config.ts ` 的 ` plugins ` | [ 原生打包方案] ( /docs/quick-start/frameworks/native ) |
79- | Mpx | ` weapp-tailwindcss/webpack ` | ` mpx.config.js ` / ` vue.config.js ` 的 ` configureWebpack ` | [ Mpx] ( /docs/quick-start/frameworks/mpx ) |
180+ | uni-app CLI Vue3 | Vite | [ uni-app cli vue3 vite] ( /docs/quick-start/frameworks/uni-app-vite ) | [ uni-app cli vue3 vite] ( /docs/quick-start/v4/uni-app-vite ) |
181+ | uni-app HBuilderX Vue3 | Vite | [ HBuilderX Vue3 Vite] ( /docs/quick-start/frameworks/hbuilderx ) | [ HBuilderX Vue3 Vite] ( /docs/quick-start/v4/uni-app-vite-hbuilder ) |
182+ | uni-app CLI Vue2 | Webpack | [ CLI Vue2 Webpack] ( /docs/quick-start/frameworks/uni-app ) | [ CLI Vue2 Webpack] ( /docs/quick-start/v4/uni-app-webpack ) |
183+ | uni-app x | Vite | [ uni-app x] ( /docs/quick-start/frameworks/uni-app-x ) | [ uni-app x] ( /docs/quick-start/v4/uni-app-x ) |
184+ | Taro | Webpack | [ Taro Webpack] ( /docs/quick-start/frameworks/taro ) | [ Taro Webpack] ( /docs/quick-start/v4/taro-webpack ) |
185+ | Taro | Vite | [ Taro Vite] ( /docs/quick-start/frameworks/taro ) | [ Taro Vite] ( /docs/quick-start/v4/taro-vite ) |
186+ | 原生小程序 | weapp-vite | [ 原生小程序] ( /docs/quick-start/native/install ) | [ Weapp-vite] ( /docs/quick-start/v4/weapp-vite ) |
187+ | Mpx | Webpack | [ Mpx] ( /docs/quick-start/frameworks/mpx ) | [ Mpx] ( /docs/quick-start/v4/mpx ) |
188+ | Rax | Webpack | [ Rax] ( /docs/quick-start/frameworks/rax ) | 暂无单独页面,可参考 Webpack 通用写法 |
189+ | Node.js API | 自定义构建 | [ Node.js API] ( /docs/quick-start/frameworks/api ) | [ Tailwind CSS 4.x 参考] ( /docs/quick-start/v4 ) |
190+
191+ ## 6. 运行与验证
192+
193+ 完成配置后,运行对应框架的小程序构建命令,例如:
194+
195+ ``` bash
196+ pnpm dev:mp-weixin
197+ ```
198+
199+ 或:
200+
201+ ``` bash
202+ pnpm dev:weapp
203+ ```
204+
205+ 然后在页面里写一个容易观察的类名:
206+
207+ ``` html
208+ <view class =" mt-4 rounded bg-sky-500 p-4 text-white" >Hello weapp-tailwindcss</view >
209+ ```
210+
211+ 如果样式没有生效,优先检查这几项:
212+
213+ | 检查项 | Tailwind CSS 3.x | Tailwind CSS 4.x |
214+ | --- | --- | --- |
215+ | CSS 入口 | 是否写了 ` @tailwind base; ` 等指令 | 是否写了 ` @import "tailwindcss"; ` |
216+ | 扫描范围 | ` tailwind.config.js ` 的 ` content ` 是否包含源码 | CSS 入口的 ` @source ` 是否包含源码 |
217+ | 构建器插件 | ` cssEntries ` 是否指向入口 CSS 绝对路径 | ` cssEntries ` 是否指向入口 CSS 绝对路径 |
218+ | PostCSS | 是否误注册了 ` tailwindcss ` | 是否误注册了 ` @tailwindcss/postcss ` |
219+ | 产物目录 | 是否误扫 ` dist ` / ` unpackage ` | 是否误扫 ` dist ` / ` unpackage ` |
80220
81- ## 5. 旧项目迁移检查
221+ ## 7. 旧项目迁移
82222
83223| 旧配置 | 新处理方式 |
84224| --- | --- |
85225| ` postinstall: "weapp-tw patch" ` | 删除,v5 不需要手动 patch |
86- | ` postcss.config.js ` 中的 ` tailwindcss ` | 删除,由 ` WeappTailwindcss ` 生成 |
87- | 过宽的 ` content: ['./src/**/*'] ` | 收窄到业务目录,并排除第三方和产物目录 |
226+ | ` postcss.config.js ` 中的 ` tailwindcss ` / ` @tailwindcss/postcss ` | 删除,由 ` WeappTailwindcss ` 生成 |
227+ | 过宽的扫描范围 | 收窄到业务目录,并排除第三方和产物目录 |
88228| 没有 ` cssEntries ` | 在构建器插件中传入 Tailwind CSS 入口绝对路径 |
89229
90- 下一步安装与确认 ` weapp-tailwindcss ` : 请继续阅读 [ 安装 weapp-tailwindcss ] ( /docs/quick-start/this-plugin ) 。
230+ 更多 Tailwind CSS 4.x 的背景、 ` @apply ` 、 ` @layer ` 和 IntelliSense 说明, 请继续阅读 [ Tailwind CSS 4.x 参考 ] ( /docs/quick-start/v4 ) 。
0 commit comments