close
logologo
指南
配置
插件
API
社区
版本
更新日志
Rsbuild 0.x 文档
English
简体中文
指南
配置
插件
API
社区
更新日志
Rsbuild 0.x 文档
English
简体中文
logologo

开始

介绍
快速上手
功能导航
名词解释

框架

React
Vue
Preact
Svelte
Solid

基础

命令行工具
开发服务器
构建产物
静态资源
HTML
JSON
Wasm
TypeScript
Web Workers
部署静态站点
升级 Rsbuild

配置

配置 Rspack
配置 Rsbuild
配置 SWC

样式

CSS
CSS Modules
CSS-in-JS
Tailwind CSS v4
Tailwind CSS v3
UnoCSS

进阶

路径别名
环境变量
模块热更新
浏览器范围
浏览器兼容性
模块联邦
多环境构建
服务端渲染(SSR)
测试

优化

代码拆分
产物体积优化
提升构建性能
静态资源内联

迁移

从 Rsbuild 0.x 迁移
webpack
Create React App
Vue CLI
Vite
Vite 插件
Modern.js Builder

调试

开启调试模式
构建性能分析
使用 Rsdoctor

常见问题

通用类问题
功能类问题
异常类问题
热更新问题
📝 在 GitHub 上编辑此页
上一页Tailwind CSS v4
下一页UnoCSS

#Tailwind CSS v3

Tailwind CSS 是一个以 Utility Class 为基础的 CSS 框架和设计系统,可以快速地为组件添加常用样式,同时支持主题样式的灵活扩展。

你可以通过 PostCSS 插件来在 Rsbuild 中接入 Tailwind CSS。

#安装 Tailwind CSS

Rsbuild 内置支持 PostCSS,你可以安装 tailwindcss 包来接入 Tailwind CSS:

npm
yarn
pnpm
bun
npm add tailwindcss@^3 -D

#配置 PostCSS

你可以通过 postcss.config.cjs 或 tools.postcss 来注册 tailwindcss 的 PostCSS 插件。

postcss.config.cjs
module.exports = {
  plugins: {
    tailwindcss: {},
  },
};

#配置 Tailwind CSS

在当前项目的根目录创建 tailwind.config.js 文件,并添加以下内容:

tailwind.config.js
/** @type {import('tailwindcss').Config} */
module.exports = {
  content: ['./src/**/*.{html,js,ts,jsx,tsx}'],
  theme: {
    extend: {},
  },
  plugins: [],
};
TIP

上述配置仅供参考,你可以根据项目需要进行调整,比如非 TypeScript 项目不需要包含 ts 和 tsx 文件。

需要注意的是,content 选项应包含所有用到 Tailwind 类名的源文件的路径。详情可参考 tailwindcss - Content 配置。

tailwind.config.js
/** @type {import('tailwindcss').Config} */
module.exports = {
  content: [
    './src/**/*.{html,js,ts,jsx,tsx}',
    '../../lib1/src/**/*.{js,ts,jsx,tsx}',
  ],
  theme: {
    extend: {},
  },
  plugins: [],
};

#其他配置方式

  • 你可以在 postcss.config.cjs 中直接传入 Tailwind CSS 的配置:
postcss.config.cjs
module.exports = {
  plugins: {
    tailwindcss: {
      content: ['./src/**/*.{html,js,ts,jsx,tsx}'],
      // ...other options
    },
  },
};
  • 也可以通过 tools.postcss 来设置 Tailwind CSS 的配置:
rsbuild.config.js
import tailwindcss from 'tailwindcss';

export default {
  tools: {
    postcss: {
      postcssOptions: {
        plugins: [
          tailwindcss({
            content: ['./src/**/*.{html,js,ts,jsx,tsx}'],
            // ...other options
          }),
        ],
      },
    },
  },
};

但我们建议将 Tailwind CSS 的配置放在 tailwind.config.* 中,因为其他方式可能会导致 Tailwind CSS 的构建性能劣化,参考 tailwindcss/issues/14229。

#引入 CSS

在 CSS 入口文件中添加 @tailwind 指令:

main.css
@tailwind base;
@tailwind components;
@tailwind utilities;

根据需求不同,你可以选择性地导入 Tailwind CSS 提供的 CSS 样式。请参考 @tailwind 文档 来了解 @tailwind 指令的详细用法。

#完成

你已经完成了在 Rsbuild 中接入 Tailwind CSS 的全部步骤!

你可以在任意组件或 HTML 中使用 Tailwind 的 utility classes,比如:

<h1 class="text-3xl font-bold underline">Hello world!</h1>

更多用法请参考 Tailwind CSS 文档。

#VS Code 插件

Tailwind CSS 提供了 Tailwind CSS IntelliSense 插件,用于在 VS Code 中自动补全 Tailwind CSS 的 class names、CSS functions 和 directives。

你可以在 VS Code 中安装该插件,即可开启自动补全功能。

#优化构建性能

在使用 Tailwind CSS 时,如果没有正确地配置 tailwind.config.js 中的 content 字段,可能会导致构建性能和热更新性能下降。这是因为 Tailwind CSS 内部会基于 content 定义的 glob 来匹配文件,扫描的文件数量越多,产生的性能开销越大。

因此,我们建议精确地指定需要扫描的路径,以避免不必要的性能开销。例如,仅包括项目源码中实际包含 Tailwind 类名的 HTML 或 JS 文件,避免包含不相关的文件或目录,尤其是 node_modules 目录。

下面是一个扫描 node_modules 的错误示例:

tailwind.config.js
/** @type {import('tailwindcss').Config} */
module.exports = {
  content: [
    './src/**/*.{html,js,ts,jsx,tsx}',
    // 扫描大量文件,导致性能下降
    './node_modules/**/*.js',
  ],
};

有时,你可能会不小心扫描 node_modules 目录,例如在 monorepo 中扫描其他包的文件时:

tailwind.config.js
module.exports = {
  content: [
    './src/**/*.{html,js,ts,jsx,tsx}',
    // 错误地包含了 `packages/ui/node_modules` 目录
    // 正确写法为 '../../packages/ui/src/**/*.{html,js,ts,jsx,tsx}'
    '../../packages/ui/**/*.{html,js,ts,jsx,tsx}',
  ],
};

#优化样式体积

如果你需要优化 Tailwind CSS 的样式体积,欢迎尝试 rsbuild-plugin-tailwindcss。

该插件读取了 Rspack 的模块图信息,自动设置准确的 content 配置,以生成尽可能少的 Tailwind CSS 样式。

rsbuild.config.ts
import { pluginTailwindCSS } from 'rsbuild-plugin-tailwindcss';

export default {
  plugins: [pluginTailwindCSS()],
};

参考 rsbuild-plugin-tailwindcss 了解更多。