Loading...

文章背景图

weapp-tailwindcss:小程序全端 TailwindCSS 工具链接入指南

2026-10-27
0
- 字
- 分钟

weapp-tailwindcss 是一套面向全端的 Tailwind CSS 工具链,把 Tailwind CSS 的原子化开发体验带到 Web/H5、小程序、App WebView、React Native 和 Lynx。它解决的问题是:用同一套 Tailwind 输入,按目标端生成正确的产物,而不是为每个平台维护一套互不相干的 class 规则。当前主线维护 Tailwind CSS v4。

一、项目官方信息

项目 信息
GitHub 仓库 https://github.com/weapp-tailwindcss/weapp-tailwindcss
官方网站/文档 https://tw.weapp.dev
开源协议 MIT
主要语言 TypeScript(约 71.2%)
Star 数 约 1.9k
主线版本 Tailwind CSS v4

核心包负责 Tailwind CSS v4 的 CSS 生成、类名转译、平台兼容和构建器生命周期集成;平台包与运行时包把能力延伸到不同渲染器与应用框架。

二、官方图片

weapp-tailwindcss 官方 Logo:

weapp-tailwindcss Logo

三、环境要求

  • Node.js ^22.18.0 || >=24.11.0。
  • Tailwind CSS >=4.0.0。
  • 使用 HBuilderX 的 uni-app / uni-app x 项目需要 HBuilderX >=5.11。
  • 包管理器推荐 pnpm。

四、完整接入步骤

1. 安装 Tailwind CSS 与核心包

pnpm add -D tailwindcss weapp-tailwindcss

2. 创建 CSS-first 入口

新建 src/app.css(或项目现有 CSS 入口):

@import "tailwindcss";

@source "./**/*.{html,js,ts,jsx,tsx,vue}";
@source not "../node_modules";
@source not "../dist";

入口文件必须被项目实际引入;cssEntries 只用于让生成器稳定识别 Tailwind 入口,不会替代 bundler 的模块图。

3. 注册构建器插件(以 Vite 为例)

纯 Web 项目使用 CSS-only 入口:

import { defineConfig } from 'vite'
import { WeappTailwindcssWeb } from 'weapp-tailwindcss/vite/web'

export default defineConfig({
  plugins: [
    WeappTailwindcssWeb(),
  ],
})

vite/web 只处理 Tailwind CSS 生成、CSS transform、CSS HMR 和 Web CSS 收尾,不注册 JS/template 转译、框架扩展、分包或小程序 finalizer。需要同时支持小程序、框架扩展或多入口时,使用 weapp-tailwindcss/vite 主入口,并显式指定 generator.target 或 platform。

4. 小程序构建

微信、支付宝、抖音、QQ 等小程序的 CSS 生成,使用对应构建器入口,或通过 CLI:

pnpm add -D @weapp-tailwindcss/cli weapp-tailwindcss tailwindcss
pnpm exec weapp-tw -i src/app.css -o dist/app.wxss --target weapp

--target weapp 是 CSS-only 转换,不会扫描或改写 WXML/JS。

五、使用方法

支持的目标端

目标端 推荐入口 适用场景
Web / H5 weapp-tailwindcss/vite/web 或 vite/webpack/rspack/gulp/Node API 浏览器 CSS、H5、普通 Web 构建
小程序 构建器入口或 @weapp-tailwindcss/cli --target weapp 微信/支付宝/抖音/QQ 小程序 CSS
App WebView 框架集成 uni-app、Taro 等 App WebView 构建
uni-app x weapp-tailwindcss/vite Android/iOS/HarmonyOS 原生构建
React Native / Expo @weapp-tailwindcss/react-native Metro/Babel/RN style manifest
ReactLynx / Rspeedy @weapp-tailwindcss/lynx Lynx CSS 与 Rspeedy 构建

Canonical 模板

仓库内提供可独立安装验证的最小模板:

  • uni-app + Vue 3:templates/uni-app-tailwindcss-v4
  • Taro + Vite + React:templates/taro-vite-tailwindcss-v4
  • weapp-vite 原生小程序:templates/weapp-vite-tailwindcss-v4

这些模板只使用 weapp-tailwindcss 生成 Tailwind CSS,不要再叠加 @tailwindcss/postcss 或 @tailwindcss/vite。

选择正确的包

需求 包
Tailwind CSS 生成、类名转译、构建器接入 weapp-tailwindcss
独立 CSS CLI、watch、canonicalize @weapp-tailwindcss/cli
PostCSS AST、选择器兼容、CSS 平台转换 @weapp-tailwindcss/postcss
React Native/Expo 编译 @weapp-tailwindcss/react-native
ReactLynx/Rspeedy 集成 @weapp-tailwindcss/lynx
twMerge/tv/cva 等运行时 class 工具 @weapp-tailwindcss/runtime、@weapp-tailwindcss/merge 等

重要边界

  • Tailwind CSS v4 的生成由 weapp-tailwindcss 接管,小程序构建中不要同时注册 tailwindcss、@tailwindcss/postcss 或 @tailwindcss/vite 作为第二套生成器。
  • JS/WXML 类名只转换 Tailwind generator 已确认生成的精确候选集合,不对普通业务字符串做启发式替换。
  • React Native、Lynx、小程序的 CSS 能力不等同于浏览器,不支持的属性以目标端测试结果为准。

六、常见问题 FAQ

1. 为什么同时配了 weapp-tailwindcss 和 @tailwindcss/vite 后样式错乱? Tailwind CSS v4 的生成已由 weapp-tailwindcss 接管,不要再注册第二套生成器。移除 @tailwindcss/postcss 或 @tailwindcss/vite,只保留 weapp-tailwindcss 的插件。

2. Node 版本有要求吗? 需要 Node.js ^22.18.0 || >=24.11.0,低版本会安装失败或运行异常。

3. 想单独生成小程序 wxss 怎么办? 用 CLI:pnpm exec weapp-tw -i src/app.css -o dist/app.wxss --target weapp,这是纯 CSS 转换,不涉及 WXML/JS 改写。

4. uni-app 项目接哪个入口? uni-app + Vite 用 weapp-tailwindcss/vite;uni-app x 用同一 vite 入口;HBuilderX 需 >=5.11。完整配置见框架接入指南。

5. 模板里为什么不能再装 @tailwindcss/vite? 官方 canonical 模板已经用 weapp-tailwindcss 接管生成,再装会造成双生成器冲突,样式可能重复或丢失。

6. 文档在哪里? 官网 https://tw.weapp.dev ,含快速开始、v4 指南、框架接入、CLI、API 参考等;示例在仓库 demo/ 与 examples/ 目录。

七、跳转链接

评论交流

文章目录