boolean | ILengthUnitsPatchOptions | — | 控制 Tailwind 自定义长度单位补丁。 |
| [appType](#apptype) | AppType | — | 声明所使用的框架类型。 |
| [arbitraryValues](#arbitraryvalues) | IArbitraryValues | — | TailwindCSS 任意值的相关配置。 |
| [jsPreserveClass](#jspreserveclass) | (keyword: string) => boolean | undefined | 保留所有带 `*` js字符串字面量 | 控制 JS 字面量是否需要保留。 |
| [staleClassNameFallback](#staleclassnamefallback) | boolean | — | 兼容字段:不再参与 JS 候选判定。 |
| [jsArbitraryValueFallback](#jsarbitraryvaluefallback) | boolean | "auto" | — | 控制 JS 任意值类名在 classNameSet 异常时的受控兜底策略。 |
| [replaceRuntimePackages](#replaceruntimepackages) | boolean | Record | — | 是否替换运行时依赖包名。 |
| [disabledDefaultTemplateHandler](#disableddefaulttemplatehandler) | boolean | false | 禁用默认的 `wxml` 模板替换器。 |
| [tailwindcssBasedir](#tailwindcssbasedir) | string | — | 指定用于获取 Tailwind 上下文的路径。 |
| [cache](#cache) | boolean | ICreateCacheReturnType | — | 控制缓存策略。 |
| [babelParserOptions](#babelparseroptions) | (Partial & { cache?: boolean; cacheKey?: string; }) | — | `@babel/parser` 的配置选项。 |
| [cssChildCombinatorReplaceValue](#csschildcombinatorreplacevalue) | string | string[] | 'view + view' | 自定义 Tailwind 子组合器的替换值。 |
| [postcssOptions](#postcssoptions) | Partial> | — | `postcss` 的配置选项。 |
| [cssRemoveHoverPseudoClass](#cssremovehoverpseudoclass) | boolean | `true` | 是否移除 CSS 中的 `:hover` 选择器。 |
| [cssRemoveProperty](#cssremoveproperty) | boolean | `true` | 是否移除 `@property` 节点。 |
| [tailwindcssPatcherOptions](#tailwindcsspatcheroptions) | TailwindCssPatchOptions | — | 自定义 patcher 参数。 |
| [logLevel](#loglevel) | "info" | "warn" | "error" | "silent" | — | 控制命令行日志输出级别。 |
## 详细说明
### supportCustomLengthUnitsPatch
> 可选 | 类型: `boolean | ILengthUnitsPatchOptions`
控制 Tailwind 自定义长度单位补丁。
#### 参阅
://github.com/sonofmagic/weapp-tailwindcss/issues/110
#### 备注
TailwindCSS 3.2.0 起对任意值执行长度单位校验,会将未声明的 `rpx` 识别为颜色。本选项默认开启以注入 `rpx` 支持。当 Node.js 在插件执行前已缓存 `tailwindcss` 模块时,首轮运行可能未生效,可通过在 `postinstall` 中执行 `weapp-tw patch` 提前打补丁。
```diff
"scripts": {
+ "postinstall": "weapp-tw patch"
}
```
### appType
> 可选 | 类型: `AppType`
声明所使用的框架类型。
#### 备注
用于辅助定位主要的 CSS bundle,以便默认的 `mainCssChunkMatcher` 做出更准确的匹配,未传入时将尝试自动猜测变量注入位置。
### arbitraryValues
> 可选 | 类型: `IArbitraryValues`
TailwindCSS 任意值的相关配置。
### jsPreserveClass
> 可选 | 类型: `(keyword: string) => boolean | undefined` | 默认值: `保留所有带 \`*\` js字符串字面量` | 版本: ^2.6.1
控制 JS 字面量是否需要保留。
#### 备注
当 Tailwind 与 JS 字面量冲突时,可通过回调返回 `true` 保留当前值,返回 `false` 或 `undefined` 则继续转义。默认保留所有带 `*` 的字符串字面量。
#### 默认值
```ts
保留所有带 `*` js字符串字面量
```
#### 参数
##### keyword
`string`
#### 返回
`boolean | undefined`
### staleClassNameFallback
> 可选 | 类型: `boolean`
兼容字段:不再参与 JS 候选判定。
#### 备注
JS 转译统一采用 `classNameSet` 精确匹配策略,仅转换 tailwindcss-patch 提供的类名集合。
### jsArbitraryValueFallback
> 可选 | 类型: `boolean | "auto"`
控制 JS 任意值类名在 classNameSet 异常时的受控兜底策略。
#### 备注
为避免误伤业务字符串,兜底仅在 class 语义上下文生效。
- `false`:关闭兜底;
- `true`:始终开启受控兜底;
- `'auto'`:仅 TailwindCSS v4 且 classNameSet 为空时启用。
### replaceRuntimePackages
> 可选 | 类型: `boolean | Recordboolean | DisabledOptions | — | 是否禁用此插件。 |
| [customAttributes](#customattributes) | ICustomAttributes | — | 自定义 `wxml` 标签属性的转换规则。 |
| [customReplaceDictionary](#customreplacedictionary) | Record | MappingChars2String | 自定义 class 名称的替换字典。 |
| [ignoreTaggedTemplateExpressionIdentifiers](#ignoretaggedtemplateexpressionidentifiers) | (string | RegExp)[] | ['weappTwIgnore'] | 忽略指定标签模板表达式中的标识符。 |
| [ignoreCallExpressionIdentifiers](#ignorecallexpressionidentifiers) | (string | RegExp)[] | — | 忽略指定调用表达式中的标识符。 |
| [cssPreflight](#csspreflight) | CssPreflightOptions | — | 控制在视图节点上注入的 CSS 预设。 |
| [cssPreflightRange](#csspreflightrange) | "all" | — | 控制 `cssPreflight` 注入的 DOM 选择器范围。 |
| [cssCalc](#csscalc) | boolean | (string | RegExp)[] | CssCalcOptions | — | 预计算 CSS 变量或 `calc` 表达式的结果。 |
| [injectAdditionalCssVarScope](#injectadditionalcssvarscope) | boolean | false | 是否额外注入 `tailwindcss css var scope`。 |
| [rewriteCssImports](#rewritecssimports) | boolean | true | 是否在 webpack/vite 阶段自动把 CSS 中的 `@import 'tailwindcss'` 映射为 `weapp-tailwindcss`。 |
| [cssSelectorReplacement](#cssselectorreplacement) | { root?: string | string[] | false; universal?: string | string[] | false; } | 详见下方 | 控制 CSS 选择器的替换规则。 |
| [rem2rpx](#rem2rpx) | boolean | Rem2rpxOptions | — | rem 到 rpx 的转换配置。 |
| [px2rpx](#px2rpx) | boolean | Px2rpxOptions | — | px 到 rpx 的转换配置。 |
| [unitsToPx](#unitstopx) | boolean | UnitsToPxOptions | — | 多单位转 px 的转换配置。 |
| [cssPresetEnv](#csspresetenv) | PresetEnvOptions | — | `postcss-preset-env` 的配置项。 |
| [tailwindcss](#tailwindcss) | import("/Users/yangqiming/Documents/GitHub/weapp-tailwindcss/packages/weapp-tailwindcss/src/typedoc.export").TailwindCssOptions | — | 为不同版本的 Tailwind 配置行为。 |
| [cssEntries](#cssentries) | string[] | — | 指定 tailwindcss@4 的入口 CSS。 |
## 详细说明
### disabled
> 可选 | 类型: `boolean | DisabledOptions`
是否禁用此插件。
#### 备注
在多平台构建场景下常用:小程序构建保持默认,非小程序环境(H5、App)传入 `true` 即可跳过转换。
#### 示例
```ts
// uni-app vue3 vite
const isH5 = process.env.UNI_PLATFORM === 'h5'
const isApp = process.env.UNI_PLATFORM === 'app'
const disabled = isH5 || isApp
uvtw({
disabled,
})
```
### customAttributes
> 可选 | 类型: `ICustomAttributes`
自定义 `wxml` 标签属性的转换规则。
#### 备注
默认会转换所有标签上的 `class` 与 `hover-class`。此配置允许通过 `Map` 或对象为特定标签指定需要转换的属性字符串或正则表达式数组。
- 使用 `'*'` 作为键可为所有标签追加通用规则。
- 支持传入 `Map(() => void) | — | 插件 `apply` 初始调用时触发。 |
| [onStart](#onstart) | (() => void) | — | 开始处理前触发。 |
| [onUpdate](#onupdate) | (filename: string, oldVal: string, newVal: string) => void | — | 匹配并修改文件后触发。 |
| [onEnd](#onend) | (() => void) | — | 结束处理时触发。 |
## 详细说明
### onLoad
> 可选 | 类型: `(() => void)`
插件 `apply` 初始调用时触发。
#### 返回
`void`
### onStart
> 可选 | 类型: `(() => void)`
开始处理前触发。
#### 返回
`void`
### onUpdate
> 可选 | 类型: `(filename: string, oldVal: string, newVal: string) => void`
匹配并修改文件后触发。
#### 参数
##### filename
`string`
##### oldVal
`string`
##### newVal
`string`
#### 返回
`void`
### onEnd
> 可选 | 类型: `(() => void)`
结束处理时触发。
#### 返回
`void`
---
## 🧩 文件匹配
本页收录 6 个配置项,来源于 `UserDefinedOptions`。
## 配置一览
| 配置项 | 类型 | 默认值 | 说明 |
| --- | --- | --- | --- |
| [htmlMatcher](#htmlmatcher) | (name: string) => boolean | — | 匹配需要处理的 `wxml` 等模板文件。 |
| [cssMatcher](#cssmatcher) | (name: string) => boolean | — | 匹配需要处理的 `wxss` 等样式文件。 |
| [jsMatcher](#jsmatcher) | (name: string) => boolean | — | 匹配需要处理的编译后 `js` 文件。 |
| [mainCssChunkMatcher](#maincsschunkmatcher) | (name: string, appType?: AppType) => boolean | — | 匹配负责注入 Tailwind CSS 变量作用域的 CSS Bundle。 |
| [wxsMatcher](#wxsmatcher) | (name: string) => boolean | ()=>false | 匹配各端的 `wxs`/`sjs`/`.filter.js` 文件。 |
| [inlineWxs](#inlinewxs) | boolean | false | 是否转义 `wxml` 中的内联 `wxs`。 |
## 详细说明
### htmlMatcher
> 可选 | 类型: `(name: string) => boolean`
匹配需要处理的 `wxml` 等模板文件。
#### 参数
##### name
`string`
#### 返回
`boolean`
### cssMatcher
> 可选 | 类型: `(name: string) => boolean`
匹配需要处理的 `wxss` 等样式文件。
#### 参数
##### name
`string`
#### 返回
`boolean`
### jsMatcher
> 可选 | 类型: `(name: string) => boolean`
匹配需要处理的编译后 `js` 文件。
#### 参数
##### name
`string`
#### 返回
`boolean`
### mainCssChunkMatcher
> 可选 | 类型: `(name: string, appType?: AppType) => boolean`
匹配负责注入 Tailwind CSS 变量作用域的 CSS Bundle。
#### 备注
在处理 `::before`/`::after` 等不兼容选择器时,建议手动指定文件位置。
#### 参数
##### name
`string`
##### appType?
`AppType`
#### 返回
`boolean`
### wxsMatcher
> 可选 | 类型: `(name: string) => boolean` | 默认值: `()=>false`
匹配各端的 `wxs`/`sjs`/`.filter.js` 文件。
#### 备注
配置前请确保在 `tailwind.config.js` 的 `content` 中包含对应格式。
#### 默认值
```ts
()=>false
```
#### 参数
##### name
`string`
#### 返回
`boolean`
### inlineWxs
> 可选 | 类型: `boolean` | 默认值: `false`
是否转义 `wxml` 中的内联 `wxs`。
#### 备注
使用前同样需要在 `tailwind.config.js` 中声明 `wxs` 格式。
#### 默认值
```ts
false
```
#### 示例
```html
bg-[url('/images/homebg.png')] 这样的写法无法生效。请改用以下任一方式:
- 使用线上可访问的远程图片地址,例如 `bg-[url('https://example.com/bg.png')]`
- 将资源转成 `base64` 后内联到 `background-image`
- 改用 `
{`const button = cva('inline-flex items-center px-4 py-2', {
variants: { intent: { primary: 'bg-primary text-primary-foreground', ghost: 'hover:bg-accent' } },
compoundVariants: [{ intent: 'primary', size: 'lg', class: 'shadow-lg' }],
})`}
)
}
```
buttonVariants({ intent: 'primary', size: 'lg' })