☰
在 Rsbuild 项目中安装 Tailwind CSS 与 daisyUI:完整实战指南
2026/10/10 11:41:54 网站建设 项目流程

在 Rsbuild 项目中安装 Tailwind CSS 与 daisyUI:完整实战指南

【免费下载链接】daisyui🌼 🌼 🌼 🌼 🌼 The most popular, free and open-source Tailwind CSS component library项目地址: https://gitcode.com/GitHub_Trending/da/daisyui

daisyUI 是开源免费的 Tailwind CSS 组件库(本仓库packages/daisyui/package.json中当前版本为 5.7.27),而 Rsbuild 作为基于 Rspack 的高性能构建工具,内置 PostCSS 支持,无需额外配置即可无缝接入 Tailwind CSS v4 与 daisyUI。本篇以官方安装文档packages/docs/src/routes/(routes)/docs/install/rsbuild/+page.md为骨架,带你从零完成 Rsbuild 项目脚手架创建、依赖安装、PostCSS 与 CSS 接入的完整流程,并结合仓库源码剖析@plugin "daisyui"背后的插件机制与常用配置项,让你在 Rsbuild 项目中稳定复现 daisyUI 的全部组件与主题能力。

1. 为什么 Rsbuild 接入 daisyUI 如此简单

Rsbuild 官方文档中明确说明「Rsbuild has built-in support for PostCSS」——即 Rsbuild 构建管线中已经内置了 PostCSS 处理能力,因此我们不需要像传统 Webpack 项目那样手动安装、注册postcss-loader,只要在项目根目录放一个postcss.config.mjs配置文件,Rsbuild 在构建时就会自动读取并应用其中的 PostCSS 插件。

在此基础上,daisyUI 5 本身是一个标准的 Tailwind CSS 插件(packages/daisyui/package.json的 description 为 "daisyUI 5 - The Tailwind CSS Component Library",其入口packages/daisyui/index.js使用 Tailwind 官方的plugin.withOptions包装器导出插件),而 Tailwind CSS v4 提供了一套全新的「CSS 优先」接入方式:

  • 用@import "tailwindcss"在 CSS 中直接引入 Tailwind;
  • 用@plugin "daisyui"在 CSS 中把 daisyUI 注册为 Tailwind 插件。

整个过程不涉及tailwind.config.js、不涉及 JavaScript 插件注册代码,一条 PostCSS 配置加两行 CSS 即可完成接入。这就是 Rsbuild 与 daisyUI 组合使用时最顺滑的地方。

2. 第一步:创建新的 Rsbuild 项目

在空目录(或当前目录)中执行官方脚手架命令:

npm create rsbuild -d ./

其中-d ./表示把项目脚手架直接生成到当前目录(-d即--dir)。命令执行后,Rsbuild 脚手架会生成完整的项目结构,包括package.json、src/源码目录、入口 HTML 以及rsbuild.config.*配置文件等。脚手架自带dev(开发服务器)、build(生产构建)、preview(预览构建产物)等脚本,后续验证安装是否成功时直接使用这些脚本即可。

如果你希望项目创建在指定名称的子目录中,也可以把./换成目录名,例如npm create rsbuild my-app,效果等同。

3. 第二步:安装 Tailwind CSS 与 daisyUI

在项目根目录执行:

npm add tailwindcss @tailwindcss/postcss daisyui@latest

这条命令会同时安装三个包,各司其职:

| 包名 | 作用 | 说明 | |--|--|--| |tailwindcss| Tailwind CSS v4 核心库 | 提供原子类、变体、@import "tailwindcss"等能力 | |@tailwindcss/postcss| Tailwind v4 的 PostCSS 插件 | 负责在 PostCSS 管线中编译 Tailwind CSS,是当前版本在 Rsbuild 中的接入方式 | |daisyui@latest| daisyUI 组件库 | 使用@latest标签始终安装最新稳定版(对应本仓库当前版本 5.7.27) |

注意:这里的@tailwindcss/postcss是 Tailwind CSS v4 的 PostCSS 插件,而不是旧版 Tailwind v3 时代使用的tailwindcssPostCSS 插件。daisyUI 5 针对 Tailwind v4 的 CSS 优先接入方式设计,因此请勿混用旧版 Tailwind。

4. 第三步:创建 postcss.config.mjs

在项目根目录创建postcss.config.mjs,内容如下:

const config = { plugins: { '@tailwindcss/postcss': {}, }, }; export default config;

说明:

  • 文件使用.mjs扩展名,表示这是一个 ESM 模块,可以直接使用export default语法;
  • plugins对象中注册@tailwindcss/postcss插件,{}为空配置对象(Tailwind v4 无需在这里传任何参数,配置全部下沉到 CSS 中完成);
  • 由于 Rsbuild 内置 PostCSS 支持,它会自动发现并加载这个文件,无需在rsbuild.config.*中做任何额外声明。

5. 第四步:在 CSS 入口文件中引入 Tailwind 与 daisyUI

找到 Rsbuild 脚手架生成的src/App.css(或你项目实际的全局样式入口),写入以下两行:

@import "tailwindcss"; @plugin "daisyui";

同时移除该文件中遗留的旧样式(脚手架自带的示例样式),避免与组件样式冲突。

这两行的含义分别是:

  • @import "tailwindcss":引入 Tailwind CSS v4 的预置层(base、components、utilities)与默认主题变量;
  • @plugin "daisyui":将 daisyUI 注册为 Tailwind 插件。daisyUI 会在此基础上注入自己的基础样式(如rootcolor、rootscrollgutter)、全部组件样式(button、card、modal等,源码位于packages/daisyui/src/components/)以及工具类样式(glass、join、radius、typography,源码位于packages/daisyui/src/utilities/)。

完成这一步后,你就可以直接在 HTML/JSX 模板中书写 daisyUI 类名(如btn btn-primary、card、navbar等),并配合data-theme属性切换主题。

6. 源码视角:@plugin "daisyui"是如何生效的

理解插件在底层做了什么,有助于排查问题时更精准。daisyUI 5 的插件出口在packages/daisyui/index.js:它调用 Tailwind 提供的plugin.withOptions(...)(包装器定义见packages/daisyui/functions/plugin.js),在addBase、addComponents、addUtilities、addVariant四个钩子中完成三类工作:

  1. 主题注入:通过pluginOptionsHandler(见packages/daisyui/functions/pluginOptionsHandler.js)解析themes、root、prefix、logs等选项,把主题 CSS 变量(如--color-base-100)写入对应的选择器(默认是:root与[data-theme=...]),并按--default/--prefersdark标志生成默认主题与暗色模式媒体查询;
  2. 组件与工具类注入:遍历packages/daisyui/src/base/、components/、utilities/下的所有样式模块,逐一通过addBase/addComponents/addUtilities注册到 Tailwind 编译产物中,并用nestCssLayers包裹为 CSS 层级;
  3. 变体注册:额外注册is-drawer-open、is-drawer-close两个抽屉相关变体。

另外值得一提的是packages/daisyui/functions/themeOrder.js中定义了 35 个内置主题(light、dark、cupcake、dracula、nord、abyss、silk等),默认启用light --default, dark --prefersdark两个主题。这意味着在 Rsbuild 项目里,只要 HTML 上有data-theme="dracula"这类属性,对应主题变量就会立刻生效,无需额外引入任何 CSS 文件。

7. 进阶:在 Rsbuild 中配置 daisyUI

由于 daisyUI 5 的配置全部走 CSS,你可以在src/App.css中把@plugin "daisyui"结尾的分号;替换为花括号{},在括号内书写配置项:

@import "tailwindcss"; @plugin "daisyui" { themes: light --default, dark --prefersdark; root: ":root"; include: ; exclude: ; prefix: ; logs: true; }

上面的写法就是 daisyUI 的默认配置(与packages/daisyui/functions/pluginOptionsHandler.js中的默认值一致)。各配置项说明如下:

| 配置项 | 默认值 | 类型 | 说明 | |--|--|--|--| |themes|light --default, dark --prefersdark| 字符串 / 逗号分隔列表 /false/all| 启用的主题列表;--default标志将该主题设为默认主题,--prefersdark标志将其设为暗色模式默认主题;false禁用全部内置主题,all启用全部主题 | |root|":root"| 字符串 | 接收 CSS 变量的选择器,可改为#my-app等自定义选择器以限定作用域(适合 Web Component、Shadow DOM 等隔离场景) | |include| (空) | 逗号分隔列表 | 只包含指定组件,其余样式全部剔除 | |exclude| (空) | 逗号分隔列表 | 排除指定组件(如rootscrollgutter、checkbox、glass等) | |prefix|""| 字符串 | 所有 daisyUI 类名的前缀,例如"d-"会让btn变成d-btn| |logs|true| 布尔值 | 是否在控制台输出 daisyUI 的版本日志 |

几个典型配置示例:

@plugin "daisyui" { themes: nord --default, abyss --prefersdark, cupcake, dracula; }

上面的配置启用了 4 个主题:nord为默认主题,abyss为暗色模式默认主题,cupcake与dracula可通过data-theme="cupcake"、data-theme="dracula"按需切换。

@plugin "daisyui" { prefix: "d-"; }

开启前缀后,组件类名与theme-controller都会被加上前缀(theme-controller是唯一只加 daisyUI 前缀而不受 Tailwind 前缀影响的例外)。如果你还想叠加 Tailwind 自身的prefix配置,可以写成@import "tailwindcss" prefix(tw);与上面的 daisyUIprefix组合使用。

更完整的配置说明与示例可查阅packages/docs/src/routes/(routes)/docs/config/+page.md。

8. 验证安装与常见问题

完成以上四步后,运行开发服务器验证:

npm run dev

然后在页面模板中书写组件类名,例如:

<button class="btn btn-primary">Primary</button> <div class="card bg-base-100 shadow-xl">...</div>

若按钮、卡片样式与data-theme主题切换都正常生效,说明安装成功。

常见问题与排查建议:

  • 旧样式残留导致样式异常:确保src/App.css中已删除脚手架自带的示例样式,仅保留@import "tailwindcss";与@plugin "daisyui";两行;
  • Node 版本过低:Rsbuild 对 Node.js 版本有最低要求,请确保本地 Node 版本满足 Rsbuild 官方要求,否则脚手架安装或构建会报错;
  • Vite / 纯 PostCSS 场景差异:如果你不在 Rsbuild 中,而是使用 Vite,则应改用@tailwindcss/vite插件并在vite.config.js中注册(参见packages/docs/src/routes/(routes)/docs/install/vite/+page.md);如果使用纯 PostCSS 管线,则需额外安装postcss与postcss-cli并配置build:css脚本(参见packages/docs/src/routes/(routes)/docs/install/postcss/+page.md)。

无论使用哪种构建工具,daisyUI 的核心接入逻辑一致:注册 Tailwind v4 的 PostCSS/Vite 插件 → CSS 中@import "tailwindcss"→@plugin "daisyui"。掌握这套思路后,在任何基于 Tailwind v4 的工程中都能快速落地 daisyUI。

【免费下载链接】daisyui🌼 🌼 🌼 🌼 🌼 The most popular, free and open-source Tailwind CSS component library项目地址: https://gitcode.com/GitHub_Trending/da/daisyui

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询