close

Tailwind CSS 插件

该插件基于 @tailwindcss/webpack 实现,用于在 Rsbuild 中集成 Tailwind CSS v4。

相比基于 @tailwindcss/postcss 的集成方式,该插件无需通过 PostCSS 执行 Tailwind CSS 转换,因此提供了更好的构建性能。

快速开始

安装插件

执行以下命令安装插件:

npm
yarn
pnpm
bun
deno
npm add @rsbuild/plugin-tailwindcss tailwindcss -D
Tip

Tailwind CSS 插件支持 Rsbuild >= 2.0 和 Tailwind CSS >= 4.0。

注册插件

在 Rsbuild 配置中注册插件:

rsbuild.config.ts
import { pluginTailwindcss } from '@rsbuild/plugin-tailwindcss';

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

引入 CSS

在 CSS 入口文件中添加 @import 指令,引入 Tailwind CSS:

src/index.css
@import 'tailwindcss';

然后在 JavaScript 或 TypeScript 入口中引入这个 CSS 文件:

src/index.ts
import './index.css';

现在你可以在 HTML 或框架组件中使用 Tailwind 的 utility classes:

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

Tailwind CSS v4 不能与 Sass、Less 或 Stylus 等 CSS 预处理器一起使用,你需要将 @import 'tailwindcss'; 语句放在 .css 文件的开头,详见 Tailwind CSS - Compatibility

扫描范围

默认情况下,该插件会使用 Rsbuild 根目录 作为 Tailwind CSS 的扫描基准目录(默认为 process.cwd())。

Tailwind CSS 会自动从扫描基准目录下的文件中检测类名。你可以在 CSS 入口文件中使用 Tailwind CSS 的 source(...) 函数和 @source 指令 来收窄或自定义扫描范围:

src/index.css
@import 'tailwindcss' source('./');

也可以禁用自动源文件检测,并显式注册需要扫描的源文件:

src/index.css
@import 'tailwindcss' source(none);

@source './pages/**/*.html';
@source './components/**/*.{js,ts,jsx,tsx}';

source(...)@source 中的相对路径会基于声明它们的 CSS 文件进行解析。

选项

optimize

启用 Tailwind CSS 自带的 Lightning CSS optimization。

默认情况下,该选项在生产模式下启用,在开发模式下禁用。

  • 类型:
type Optimize =
  | boolean
  | {
      minify?: boolean;
    };
  • 默认值: 生产模式下为 true,开发模式下为 false

生产模式下,Tailwind CSS 自带的 minify 会跟随 Rsbuild 的 CSS minify 配置。例如,将 output.minify 设置为 false 时,默认配置下也会禁用 Tailwind CSS 自带的 minify。

optimizefalse 时,Tailwind CSS 仍然会编译 Tailwind directives 并生成 utilities,但会跳过 Tailwind CSS 自带的 Lightning CSS optimization 步骤:

rsbuild.config.ts
pluginTailwindcss({
  optimize: false,
});

如果你希望始终启用 Tailwind CSS 自带的 optimization 和 minify,可以将 optimize 设置为 true

rsbuild.config.ts
pluginTailwindcss({
  optimize: true,
});

如果你希望启用 Tailwind CSS 自带的 optimization,但不启用其中的 minify,可以传入对象并省略 minify,或者将其设置为 false

rsbuild.config.ts
pluginTailwindcss({
  optimize: {
    minify: false,
  },
});

如果你需要显式启用 Tailwind CSS 自带的 minify:

rsbuild.config.ts
pluginTailwindcss({
  optimize: {
    minify: true,
  },
});