weapp-tailwindcss 4.3.2 → 4.4.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-2F7HOQQY.mjs +8 -0
- package/dist/chunk-2NRTWL47.js +43 -0
- package/dist/{chunk-YNMM5ZP5.mjs → chunk-3MSGCIVH.mjs} +128 -138
- package/dist/chunk-6GP37C26.js +8 -0
- package/dist/{chunk-GRWK73SM.js → chunk-AEJDBNAX.js} +567 -309
- package/dist/{chunk-IDYXPWF6.mjs → chunk-AXYGCCZW.mjs} +51 -63
- package/dist/chunk-E2LRXNZ3.js +122 -0
- package/dist/{chunk-BXPTS6UP.mjs → chunk-FBGUUXQV.mjs} +1 -1
- package/dist/{chunk-72PXDJ7I.js → chunk-FOSGDQZ7.js} +34 -43
- package/dist/chunk-H4JTYYOI.mjs +43 -0
- package/dist/{chunk-3YIQPUK7.mjs → chunk-IHKVNALD.mjs} +29 -38
- package/dist/chunk-KAKRCCPX.mjs +122 -0
- package/dist/{chunk-AMSF25MI.js → chunk-NZ7VALIM.js} +130 -140
- package/dist/{chunk-YSVQIZ4W.js → chunk-PPTSD6TQ.js} +51 -63
- package/dist/{chunk-K6IPKJSY.js → chunk-RBRSMHFS.js} +1 -1
- package/dist/chunk-UW3WHSZ5.js +39 -0
- package/dist/{chunk-DGVVFKNF.mjs → chunk-WCIVXE2D.mjs} +566 -308
- package/dist/chunk-ZNKIYZRQ.mjs +39 -0
- package/dist/cli.js +5 -8
- package/dist/cli.mjs +4 -7
- package/dist/core.js +5 -5
- package/dist/core.mjs +4 -4
- package/dist/css-macro/postcss.js +1 -1
- package/dist/css-macro/postcss.mjs +1 -1
- package/dist/css-macro.js +3 -3
- package/dist/css-macro.mjs +2 -2
- package/dist/defaults.js +4 -4
- package/dist/defaults.mjs +3 -3
- package/dist/escape.js +1 -1
- package/dist/escape.mjs +1 -1
- package/dist/gulp.js +7 -7
- package/dist/gulp.mjs +6 -6
- package/dist/index.js +10 -9
- package/dist/index.mjs +9 -8
- package/dist/postcss-html-transform.js +1 -1
- package/dist/postcss-html-transform.mjs +1 -1
- package/dist/presets.js +3 -3
- package/dist/presets.mjs +2 -2
- package/dist/types.d.mts +248 -194
- package/dist/types.d.ts +248 -194
- package/dist/types.js +1 -1
- package/dist/types.mjs +1 -1
- package/dist/vite.js +7 -7
- package/dist/vite.mjs +6 -6
- package/dist/webpack.js +8 -7
- package/dist/webpack.mjs +7 -6
- package/dist/webpack4.js +53 -68
- package/dist/webpack4.mjs +52 -67
- package/package.json +10 -12
- package/dist/chunk-3AUX4FGE.mjs +0 -13
- package/dist/chunk-JXBLHLFR.mjs +0 -27
- package/dist/chunk-K3KFCISK.js +0 -145
- package/dist/chunk-LSSLYD6B.js +0 -13
- package/dist/chunk-O335YLYH.js +0 -27
- package/dist/chunk-RC2KZ2LO.mjs +0 -145
package/dist/types.d.ts
CHANGED
|
@@ -16,273 +16,311 @@ interface HashMapValue {
|
|
|
16
16
|
}
|
|
17
17
|
type HashMapKey = string | number;
|
|
18
18
|
type CacheValue = sources.Source | string;
|
|
19
|
+
interface CacheProcessResult<T extends CacheValue> {
|
|
20
|
+
result: T;
|
|
21
|
+
cacheValue?: CacheValue;
|
|
22
|
+
}
|
|
23
|
+
interface CacheProcessOptions<T extends CacheValue> {
|
|
24
|
+
key: string;
|
|
25
|
+
hashKey?: HashMapKey;
|
|
26
|
+
rawSource?: string | Buffer;
|
|
27
|
+
hash?: string;
|
|
28
|
+
resolveCache?: () => T | undefined;
|
|
29
|
+
transform: () => Promise<CacheProcessResult<T> | T>;
|
|
30
|
+
onCacheHit?: (value: T) => void | Promise<void>;
|
|
31
|
+
}
|
|
19
32
|
interface ICreateCacheReturnType {
|
|
20
|
-
hashMap: Map<HashMapKey, HashMapValue>;
|
|
21
|
-
instance: LRUCache<string, CacheValue>;
|
|
33
|
+
readonly hashMap: Map<HashMapKey, HashMapValue>;
|
|
34
|
+
readonly instance: LRUCache<string, CacheValue>;
|
|
22
35
|
hasHashKey: (key: HashMapKey) => boolean;
|
|
23
36
|
getHashValue: (key: HashMapKey) => HashMapValue | undefined;
|
|
24
|
-
setHashValue: (key: HashMapKey, value: HashMapValue) =>
|
|
37
|
+
setHashValue: (key: HashMapKey, value: HashMapValue) => Map<HashMapKey, HashMapValue>;
|
|
25
38
|
computeHash: (message: string | Buffer) => string;
|
|
26
39
|
get: <V extends CacheValue = sources.Source>(key: string) => V | undefined;
|
|
27
|
-
set: <V extends CacheValue = sources.Source>(key: string, value: V) =>
|
|
40
|
+
set: <V extends CacheValue = sources.Source>(key: string, value: V) => LRUCache<string, CacheValue>;
|
|
28
41
|
has: (key: string) => boolean;
|
|
29
|
-
calcHashValueChanged: (key: HashMapKey, hash: string) =>
|
|
30
|
-
process:
|
|
31
|
-
key: string;
|
|
32
|
-
source: CacheValue;
|
|
33
|
-
} | Promise<void | {
|
|
34
|
-
key: string;
|
|
35
|
-
source: CacheValue;
|
|
36
|
-
}>) => void | Promise<void>;
|
|
42
|
+
calcHashValueChanged: (key: HashMapKey, hash: string) => ICreateCacheReturnType;
|
|
43
|
+
process: <T extends CacheValue>(options: CacheProcessOptions<T>) => Promise<T>;
|
|
37
44
|
}
|
|
38
45
|
|
|
39
46
|
interface UserDefinedOptions {
|
|
40
47
|
/**
|
|
48
|
+
* 是否禁用此插件。
|
|
49
|
+
*
|
|
41
50
|
* @group 0.重要配置
|
|
42
|
-
* @
|
|
51
|
+
* @remarks
|
|
52
|
+
* 在多平台构建场景下常用:小程序构建保持默认,非小程序环境(H5、App)传入 `true` 即可跳过转换。
|
|
53
|
+
* @example
|
|
43
54
|
* ```ts
|
|
44
|
-
* //
|
|
55
|
+
* // uni-app vue3 vite
|
|
45
56
|
* import process from 'node:process'
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
}),
|
|
57
|
-
// highlight-end
|
|
57
|
+
*
|
|
58
|
+
* const isH5 = process.env.UNI_PLATFORM === 'h5'
|
|
59
|
+
* const isApp = process.env.UNI_PLATFORM === 'app'
|
|
60
|
+
* const disabled = isH5 || isApp
|
|
61
|
+
*
|
|
62
|
+
* import { UnifiedViteWeappTailwindcssPlugin as uvtw } from 'weapp-tailwindcss/vite'
|
|
63
|
+
*
|
|
64
|
+
* uvtw({
|
|
65
|
+
* disabled,
|
|
66
|
+
* })
|
|
58
67
|
* ```
|
|
59
68
|
*/
|
|
60
69
|
disabled?: boolean;
|
|
61
70
|
/**
|
|
71
|
+
* 自定义 `wxml` 标签属性的转换规则。
|
|
72
|
+
*
|
|
62
73
|
* @group 0.重要配置
|
|
63
|
-
* @
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
// 匹配所有带 Class / class 相关的标签,比如某个组件上的 `a-class`, `testClass` , `custom-class` 里面的值
|
|
78
|
-
'*': [ /[A-Za-z]?[A-Za-z-]*[Cc]lass/ ],
|
|
79
|
-
// 额外匹配转化 `van-image` 标签上属性为 `custom-class` 的值
|
|
80
|
-
'van-image': ['custom-class'],
|
|
81
|
-
// 转化所有 `ice-button` 标签上属性为 `testClass` 的值
|
|
82
|
-
'ice-button': ['testClass']
|
|
83
|
-
}
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
当然你可以根据自己的需求,定义单个或者多个正则/字符串。
|
|
87
|
-
|
|
88
|
-
甚至有可能你编写正则表达式,它们匹配的范围,直接包括了插件里自带默认的 `class`/`hover-class`,那么这种情况下,你完全可以取代插件的默认模板转化器,开启 [disabledDefaultTemplateHandler](/docs/api/interfaces/UserDefinedOptions#disableddefaulttemplatehandler) 配置项,禁用默认的模版匹配转化器。
|
|
74
|
+
* @remarks
|
|
75
|
+
* 默认会转换所有标签上的 `class` 与 `hover-class`。此配置允许通过 `Map` 或对象为特定标签指定需要转换的属性字符串或正则表达式数组。
|
|
76
|
+
* - 使用 `'*'` 作为键可为所有标签追加通用规则。
|
|
77
|
+
* - 支持传入 `Map<string | RegExp, (string | RegExp)[]>` 以满足复杂匹配需求。
|
|
78
|
+
* - 常见场景包括通过组件 `prop` 传递类名,或对三方组件的自定义属性做匹配,更多讨论见 [issue#129](https://github.com/sonofmagic/weapp-tailwindcss/issues/129#issuecomment-1340914688) 与 [issue#134](https://github.com/sonofmagic/weapp-tailwindcss/issues/134#issuecomment-1351288238)。
|
|
79
|
+
* 如果自定义规则已经覆盖默认的 `class`/`hover-class`,可开启 [`disabledDefaultTemplateHandler`](/docs/api/interfaces/UserDefinedOptions#disableddefaulttemplatehandler) 以关闭内置模板处理器。
|
|
80
|
+
* @example
|
|
81
|
+
* ```js
|
|
82
|
+
* const customAttributes = {
|
|
83
|
+
* '*': [/[A-Za-z]?[A-Za-z-]*[Cc]lass/],
|
|
84
|
+
* 'van-image': ['custom-class'],
|
|
85
|
+
* 'ice-button': ['testClass'],
|
|
86
|
+
* }
|
|
87
|
+
* ```
|
|
89
88
|
*/
|
|
90
89
|
customAttributes?: ICustomAttributes;
|
|
91
90
|
/**
|
|
91
|
+
* 自定义 class 名称的替换字典。
|
|
92
|
+
*
|
|
92
93
|
* @group 0.重要配置
|
|
93
|
-
* @
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
当然,你也可以自定义,传一个 `Record<string, string>` 类型,只需保证转化后 css 中的 `class` 选择器,不会和自己定义的 `class` 产生冲突即可,示例见[dic.ts](https://github.com/sonofmagic/weapp-core/blob/main/packages/escape/src/dic.ts)
|
|
94
|
+
* @remarks
|
|
95
|
+
* 默认策略会将小程序不允许的字符映射为等长度的替代字符串,因此无法通过结果反推出原始类名。如需完全自定义,可传入 `Record<string, string>`,只需确保生成的类名不会与已有样式冲突。示例参考 [dic.ts](https://github.com/sonofmagic/weapp-core/blob/main/packages/escape/src/dic.ts)。
|
|
97
96
|
* @default MappingChars2String
|
|
98
97
|
*/
|
|
99
98
|
customReplaceDictionary?: Record<string, string>;
|
|
100
99
|
/**
|
|
100
|
+
* 忽略指定标签模板表达式中的标识符。
|
|
101
|
+
*
|
|
101
102
|
* @version `^4.0.0`
|
|
102
103
|
* @group 0.重要配置
|
|
103
|
-
* @
|
|
104
|
+
* @remarks
|
|
105
|
+
* 当模板字符串被这些标识符包裹时,将跳过转义处理。
|
|
104
106
|
* @default ['weappTwIgnore']
|
|
105
107
|
*/
|
|
106
108
|
ignoreTaggedTemplateExpressionIdentifiers?: (string | RegExp)[];
|
|
107
109
|
/**
|
|
110
|
+
* 忽略指定调用表达式中的标识符。
|
|
111
|
+
*
|
|
108
112
|
* @version `^4.0.0`
|
|
109
113
|
* @group 0.重要配置
|
|
110
|
-
* @
|
|
114
|
+
* @remarks
|
|
115
|
+
* 使用这些方法包裹的模板字符串或字符串字面量会跳过转义,常与 `@weapp-tailwindcss/merge` 配合(如 `['twMerge', 'twJoin', 'cva']`)。
|
|
111
116
|
*/
|
|
112
117
|
ignoreCallExpressionIdentifiers?: (string | RegExp)[];
|
|
113
118
|
/**
|
|
119
|
+
* 控制在视图节点上注入的 CSS 预设。
|
|
120
|
+
*
|
|
114
121
|
* @group 0.重要配置
|
|
115
122
|
* @issue https://github.com/sonofmagic/weapp-tailwindcss/issues/7
|
|
116
|
-
* @
|
|
123
|
+
* @remarks
|
|
124
|
+
* 默认会向所有 `view`/`text` 元素注入 Tailwind 风格的基础样式,可通过此配置禁用、调整或补充规则,受 `cssPreflightRange` 影响。
|
|
125
|
+
* @example
|
|
117
126
|
* ```js
|
|
118
|
-
*
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
// case 禁用所有
|
|
132
|
-
cssPreflight: false
|
|
133
|
-
// result
|
|
134
|
-
// none
|
|
135
|
-
|
|
136
|
-
// case 禁用单个属性
|
|
137
|
-
cssPreflight: {
|
|
138
|
-
'box-sizing': false
|
|
139
|
-
}
|
|
140
|
-
// border-width: 0;
|
|
141
|
-
// border-style: solid;
|
|
142
|
-
// border-color: currentColor
|
|
143
|
-
|
|
144
|
-
// case 更改和添加单个属性
|
|
145
|
-
cssPreflight: {
|
|
146
|
-
'box-sizing': 'content-box',
|
|
147
|
-
'background': 'black'
|
|
148
|
-
}
|
|
149
|
-
// result
|
|
150
|
-
// box-sizing: content-box;
|
|
151
|
-
// border-width: 0;
|
|
152
|
-
// border-style: solid;
|
|
153
|
-
// border-color: currentColor;
|
|
154
|
-
// background: black
|
|
127
|
+
* cssPreflight: {
|
|
128
|
+
* 'box-sizing': 'border-box',
|
|
129
|
+
* 'border-width': '0',
|
|
130
|
+
* 'border-style': 'solid',
|
|
131
|
+
* 'border-color': 'currentColor',
|
|
132
|
+
* }
|
|
133
|
+
*
|
|
134
|
+
* cssPreflight: false
|
|
135
|
+
*
|
|
136
|
+
* cssPreflight: {
|
|
137
|
+
* 'box-sizing': false,
|
|
138
|
+
* background: 'black',
|
|
139
|
+
* }
|
|
155
140
|
* ```
|
|
156
141
|
*/
|
|
157
142
|
cssPreflight?: CssPreflightOptions;
|
|
158
143
|
/**
|
|
144
|
+
* 控制 `cssPreflight` 注入的 DOM 选择器范围。
|
|
145
|
+
*
|
|
159
146
|
* @group 0.重要配置
|
|
160
147
|
* @issue https://github.com/sonofmagic/weapp-tailwindcss/pull/62
|
|
161
|
-
* @
|
|
148
|
+
* @remarks
|
|
149
|
+
* 仅 `view`、`text` 及其伪元素会受影响。设置为 `'all'` 可以覆盖所有元素,此时需自行处理与宿主默认样式的冲突。
|
|
162
150
|
*/
|
|
163
151
|
cssPreflightRange?: 'all';
|
|
164
152
|
/**
|
|
153
|
+
* 预计算 CSS 变量或 `calc` 表达式的结果。
|
|
154
|
+
*
|
|
165
155
|
* @group 0.重要配置
|
|
166
156
|
* @version `^4.3.0`
|
|
167
|
-
* @
|
|
157
|
+
* @remarks
|
|
158
|
+
* 解决部分机型对 `calc` 计算不一致的问题,可传入布尔值、选项对象或自定义匹配列表(支持正则)。在启用计算后,可通过 `includeCustomProperties` 指定需要保留的变量。
|
|
159
|
+
* @example
|
|
160
|
+
* ```css
|
|
161
|
+
* // 原始输出
|
|
162
|
+
* page,
|
|
163
|
+
* :root {
|
|
164
|
+
* --spacing: 8rpx;
|
|
165
|
+
* }
|
|
166
|
+
* .h-2 {
|
|
167
|
+
* height: calc(var(--spacing) * 2);
|
|
168
|
+
* }
|
|
169
|
+
* ```
|
|
170
|
+
*
|
|
171
|
+
* ```css
|
|
172
|
+
* // 启用 cssCalc 后
|
|
173
|
+
* .h-2 {
|
|
174
|
+
* height: 16rpx;
|
|
175
|
+
* height: calc(var(--spacing) * 2);
|
|
176
|
+
* }
|
|
177
|
+
* ```
|
|
178
|
+
*
|
|
179
|
+
* ```js
|
|
180
|
+
* cssCalc: ['--spacing']
|
|
181
|
+
* cssCalc: { includeCustomProperties: ['--spacing'] }
|
|
182
|
+
* ```
|
|
168
183
|
*/
|
|
169
184
|
cssCalc?: boolean | CssCalcOptions | (string | RegExp)[];
|
|
170
185
|
/**
|
|
186
|
+
* 是否额外注入 `tailwindcss css var scope`。
|
|
187
|
+
*
|
|
171
188
|
* @group 0.重要配置
|
|
172
189
|
* @version `^2.6.0`
|
|
173
|
-
* @
|
|
174
|
-
*
|
|
175
|
-
* 比如 `taro vue3` 使用 [NutUI](https://nutui.jd.com), 需要使用 `@tarojs/plugin-html`,而这个插件会启用 `postcss-html-transform` 从而移除所有带 `*` 选择器
|
|
176
|
-
*
|
|
177
|
-
* 这会导致 `tailwindcss css var scope` 区域被移除导致一些样式,比如渐变等等功能失效
|
|
178
|
-
*
|
|
179
|
-
* 这种场景下,启用这个选项会再次重新注入整个 `tailwindcss css var scope`
|
|
180
|
-
*
|
|
190
|
+
* @remarks
|
|
191
|
+
* 当构建链路(例如 `@tarojs/plugin-html`)移除了包含 `*` 的选择器时,可启用该选项重新写入变量作用域,以避免渐变等功能失效。
|
|
181
192
|
* @default false
|
|
182
193
|
*/
|
|
183
194
|
injectAdditionalCssVarScope?: boolean;
|
|
184
195
|
/**
|
|
196
|
+
* 控制 CSS 选择器的替换规则。
|
|
197
|
+
*
|
|
185
198
|
* @group 0.重要配置
|
|
186
|
-
* @description 用于处理 css 选择器的替换规则
|
|
187
199
|
*/
|
|
188
200
|
cssSelectorReplacement?: {
|
|
189
201
|
/**
|
|
202
|
+
* 将全局选择器 `:root` 替换为指定值。
|
|
203
|
+
*
|
|
190
204
|
* @default `'page'` <br/>
|
|
191
|
-
* @
|
|
192
|
-
*
|
|
205
|
+
* @remarks
|
|
206
|
+
* 设置为 `false` 时不再替换,可根据宿主环境(例如 RootPortal)传入数组值。
|
|
207
|
+
* @example
|
|
208
|
+
* root: ['page', 'wx-root-content']
|
|
193
209
|
*/
|
|
194
210
|
root?: string | string[] | false;
|
|
195
211
|
/**
|
|
212
|
+
* 将全局选择器 `*` 替换为指定值。
|
|
213
|
+
*
|
|
196
214
|
* @issue https://github.com/sonofmagic/weapp-tailwindcss/issues/81 <br/>
|
|
197
215
|
* @default `['view','text']` <br/>
|
|
198
|
-
* @
|
|
216
|
+
* @remarks
|
|
217
|
+
* 小程序环境不支持 `*`,因此默认转换为 `view`、`text`;设置为 `false` 会留下原始选择器。
|
|
199
218
|
*/
|
|
200
219
|
universal?: string | string[] | false;
|
|
201
220
|
};
|
|
202
221
|
/**
|
|
222
|
+
* rem 到 rpx 的转换配置。
|
|
223
|
+
*
|
|
203
224
|
* @version `^3.0.0`
|
|
204
225
|
* @group 0.重要配置
|
|
205
|
-
* @
|
|
226
|
+
* @remarks
|
|
227
|
+
* 传入 `true` 使用默认配置,或提供 [postcss-rem-to-responsive-pixel](https://www.npmjs.com/package/postcss-rem-to-responsive-pixel) 支持的完整选项。
|
|
206
228
|
* ```ts
|
|
207
|
-
* // 默认值
|
|
208
229
|
* {
|
|
209
|
-
*
|
|
210
|
-
*
|
|
211
|
-
*
|
|
230
|
+
* rootValue: 32,
|
|
231
|
+
* propList: ['*'],
|
|
232
|
+
* transformUnit: 'rpx',
|
|
212
233
|
* }
|
|
213
234
|
* ```
|
|
214
235
|
*/
|
|
215
236
|
rem2rpx?: boolean | Rem2rpxOptions;
|
|
216
237
|
/**
|
|
238
|
+
* px 到 rpx 的转换配置。
|
|
239
|
+
*
|
|
217
240
|
* @group 0.重要配置
|
|
218
241
|
* @version `^4.3.0`
|
|
219
|
-
* @
|
|
242
|
+
* @remarks
|
|
243
|
+
* 传入 `true` 启用默认映射(`1px = 1rpx`),或通过对象自定义更多行为。
|
|
220
244
|
*/
|
|
221
245
|
px2rpx?: boolean | Px2rpxOptions;
|
|
222
246
|
/**
|
|
247
|
+
* `postcss-preset-env` 的配置项。
|
|
248
|
+
*
|
|
223
249
|
* @version `^4.0.0`
|
|
224
250
|
* @group 0.重要配置
|
|
225
|
-
* @
|
|
226
|
-
*
|
|
227
|
-
* https://preset-env.cssdb.org/
|
|
228
|
-
* https://github.com/csstools/postcss-plugins/tree/main/plugin-packs/postcss-preset-env#readme
|
|
251
|
+
* @see https://preset-env.cssdb.org/
|
|
252
|
+
* @see https://github.com/csstools/postcss-plugins/tree/main/plugin-packs/postcss-preset-env#readme
|
|
229
253
|
*/
|
|
230
254
|
cssPresetEnv?: PresetEnvOptions;
|
|
231
255
|
/**
|
|
256
|
+
* 为不同版本的 Tailwind 配置行为。
|
|
257
|
+
*
|
|
232
258
|
* @version `^4.0.0`
|
|
233
259
|
* @group 0.重要配置
|
|
234
|
-
* @description 配置不同版本 tailwindcss 的行为
|
|
235
260
|
*/
|
|
236
261
|
tailwindcss?: PatchOptions['tailwindcss'];
|
|
237
262
|
/**
|
|
263
|
+
* 指定 tailwindcss@4 的入口 CSS。
|
|
264
|
+
*
|
|
238
265
|
* @version `^4.2.6`
|
|
239
266
|
* @group 0.重要配置
|
|
240
|
-
* @
|
|
267
|
+
* @remarks
|
|
268
|
+
* 未配置时无法加载自定义插件,等价于设置 `tailwindcss.v4.cssEntries`。
|
|
241
269
|
*/
|
|
242
270
|
cssEntries?: string[];
|
|
243
271
|
/**
|
|
272
|
+
* 配置 uni-app x 场景的行为。
|
|
273
|
+
*
|
|
244
274
|
* @version `^4.2.0`
|
|
245
275
|
* @group 0.重要配置
|
|
246
276
|
* @ignore
|
|
247
|
-
* @description uni-app x 的配置
|
|
248
277
|
*/
|
|
249
278
|
uniAppX?: boolean;
|
|
250
279
|
}
|
|
251
280
|
interface UserDefinedOptions {
|
|
252
281
|
/**
|
|
282
|
+
* 匹配需要处理的 `wxml` 等模板文件。
|
|
283
|
+
*
|
|
253
284
|
* @group 1.文件匹配
|
|
254
|
-
* @description 匹配 `wxml`等等模板进行处理的方法
|
|
255
285
|
*/
|
|
256
286
|
htmlMatcher?: (name: string) => boolean;
|
|
257
287
|
/**
|
|
288
|
+
* 匹配需要处理的 `wxss` 等样式文件。
|
|
289
|
+
*
|
|
258
290
|
* @group 1.文件匹配
|
|
259
|
-
* @description 匹配 `wxss` 等等样式文件的方法
|
|
260
291
|
*/
|
|
261
292
|
cssMatcher?: (name: string) => boolean;
|
|
262
293
|
/**
|
|
294
|
+
* 匹配需要处理的编译后 `js` 文件。
|
|
295
|
+
*
|
|
263
296
|
* @group 1.文件匹配
|
|
264
|
-
* @description 匹配编译后 `js` 文件进行处理的方法
|
|
265
297
|
*/
|
|
266
298
|
jsMatcher?: (name: string) => boolean;
|
|
267
299
|
/**
|
|
268
|
-
*
|
|
269
|
-
* @description `tailwindcss css var inject scope` 的匹配方法,用于处理原始变量和替换不兼容选择器。可以不传,但是遇到某些 `::before/::after` 选择器注入冲突时,建议传入参数手动指定 css bundle 文件位置
|
|
300
|
+
* 匹配负责注入 Tailwind CSS 变量作用域的 CSS Bundle。
|
|
270
301
|
*
|
|
302
|
+
* @group 1.文件匹配
|
|
303
|
+
* @remarks
|
|
304
|
+
* 在处理 `::before`/`::after` 等不兼容选择器时,建议手动指定文件位置。
|
|
271
305
|
*/
|
|
272
306
|
mainCssChunkMatcher?: (name: string, appType?: AppType) => boolean;
|
|
273
307
|
/**
|
|
308
|
+
* 匹配各端的 `wxs`/`sjs`/`.filter.js` 文件。
|
|
309
|
+
*
|
|
274
310
|
* @group 1.文件匹配
|
|
275
311
|
* @experiment 实验性质,有可能会改变
|
|
276
|
-
* @
|
|
277
|
-
*
|
|
312
|
+
* @remarks
|
|
313
|
+
* 配置前请确保在 `tailwind.config.js` 的 `content` 中包含对应格式。
|
|
278
314
|
* @default ()=>false
|
|
279
315
|
*/
|
|
280
316
|
wxsMatcher?: (name: string) => boolean;
|
|
281
317
|
/**
|
|
318
|
+
* 是否转义 `wxml` 中的内联 `wxs`。
|
|
319
|
+
*
|
|
282
320
|
* @group 1.文件匹配
|
|
283
321
|
* @experiment 实验性质,有可能会改变
|
|
284
|
-
* @
|
|
285
|
-
*
|
|
322
|
+
* @remarks
|
|
323
|
+
* 使用前同样需要在 `tailwind.config.js` 中声明 `wxs` 格式。
|
|
286
324
|
* @example
|
|
287
325
|
* ```html
|
|
288
326
|
* <!-- index.wxml -->
|
|
@@ -303,185 +341,201 @@ interface UserDefinedOptions {
|
|
|
303
341
|
}
|
|
304
342
|
interface UserDefinedOptions {
|
|
305
343
|
/**
|
|
344
|
+
* 插件 `apply` 初始调用时触发。
|
|
345
|
+
*
|
|
306
346
|
* @group 2.生命周期
|
|
307
|
-
* @description plugin apply 初调用
|
|
308
347
|
*/
|
|
309
348
|
onLoad?: () => void;
|
|
310
349
|
/**
|
|
350
|
+
* 开始处理前触发。
|
|
351
|
+
*
|
|
311
352
|
* @group 2.生命周期
|
|
312
|
-
* @description 开始处理时调用
|
|
313
353
|
*/
|
|
314
354
|
onStart?: () => void;
|
|
315
355
|
/**
|
|
316
|
-
*
|
|
356
|
+
* 匹配并修改文件内容前触发。
|
|
357
|
+
*
|
|
358
|
+
* @group 2.生命周期
|
|
317
359
|
*/
|
|
318
360
|
/**
|
|
361
|
+
* 匹配并修改文件后触发。
|
|
362
|
+
*
|
|
319
363
|
* @group 2.生命周期
|
|
320
|
-
* @description 匹配成功并修改文件内容后调用
|
|
321
364
|
*/
|
|
322
365
|
onUpdate?: (filename: string, oldVal: string, newVal: string) => void;
|
|
323
366
|
/**
|
|
367
|
+
* 结束处理时触发。
|
|
368
|
+
*
|
|
324
369
|
* @group 2.生命周期
|
|
325
|
-
* @description 结束处理时调用
|
|
326
370
|
*/
|
|
327
371
|
onEnd?: () => void;
|
|
328
372
|
}
|
|
329
373
|
interface UserDefinedOptions {
|
|
330
374
|
/**
|
|
375
|
+
* 控制 Tailwind 自定义长度单位补丁。
|
|
376
|
+
*
|
|
331
377
|
* @group 3.一般配置
|
|
332
378
|
* @issue https://github.com/sonofmagic/weapp-tailwindcss/issues/110
|
|
333
|
-
* @
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
```
|
|
341
|
-
|
|
342
|
-
使用 `npm hooks` 的方式来给 `tailwindcss` 自动打 `patch`
|
|
379
|
+
* @remarks
|
|
380
|
+
* TailwindCSS 3.2.0 起对任意值执行长度单位校验,会将未声明的 `rpx` 识别为颜色。本选项默认开启以注入 `rpx` 支持。当 Node.js 在插件执行前已缓存 `tailwindcss` 模块时,首轮运行可能未生效,可通过在 `postinstall` 中执行 `weapp-tw patch` 提前打补丁。
|
|
381
|
+
* ```diff
|
|
382
|
+
* "scripts": {
|
|
383
|
+
* + "postinstall": "weapp-tw patch"
|
|
384
|
+
* }
|
|
385
|
+
* ```
|
|
343
386
|
*/
|
|
344
387
|
supportCustomLengthUnitsPatch?: ILengthUnitsPatchOptions | boolean;
|
|
345
388
|
/**
|
|
389
|
+
* 声明所使用的框架类型。
|
|
390
|
+
*
|
|
346
391
|
* @group 3.一般配置
|
|
347
|
-
* @
|
|
392
|
+
* @remarks
|
|
393
|
+
* 用于辅助定位主要的 CSS bundle,以便默认的 `mainCssChunkMatcher` 做出更准确的匹配,未传入时将尝试自动猜测变量注入位置。
|
|
348
394
|
*/
|
|
349
395
|
appType?: AppType;
|
|
350
396
|
/**
|
|
397
|
+
* TailwindCSS 任意值的相关配置。
|
|
398
|
+
*
|
|
351
399
|
* @group 3.一般配置
|
|
352
|
-
* @description 针对 tailwindcss arbitrary values 的一些配置
|
|
353
400
|
*/
|
|
354
401
|
arbitraryValues?: IArbitraryValues;
|
|
355
402
|
/**
|
|
403
|
+
* 控制 JS 字面量是否需要保留。
|
|
404
|
+
*
|
|
356
405
|
* @group 3.一般配置
|
|
357
406
|
* @version `^2.6.1`
|
|
358
|
-
* @
|
|
359
|
-
*
|
|
407
|
+
* @remarks
|
|
408
|
+
* 当 Tailwind 与 JS 字面量冲突时,可通过回调返回 `true` 保留当前值,返回 `false` 或 `undefined` 则继续转义。默认保留所有带 `*` 的字符串字面量。
|
|
360
409
|
*/
|
|
361
410
|
jsPreserveClass?: (keyword: string) => boolean | undefined;
|
|
362
411
|
/**
|
|
412
|
+
* 禁用默认的 `wxml` 模板替换器。
|
|
413
|
+
*
|
|
363
414
|
* @group 3.一般配置
|
|
364
415
|
* @version `^2.6.2`
|
|
365
|
-
* @
|
|
366
|
-
*
|
|
367
|
-
* 此时你需要自己编写匹配之前默认 `class`/`hover-class`,以及新的标签属性的正则表达式`regex`
|
|
416
|
+
* @remarks
|
|
417
|
+
* 启用后模板匹配完全交由 [`customAttributes`](/docs/api/interfaces/UserDefinedOptions#customattributes) 管理,需要自行覆盖默认的 `class` / `hover-class` 等匹配规则。
|
|
368
418
|
* @default false
|
|
369
419
|
*/
|
|
370
420
|
disabledDefaultTemplateHandler?: boolean;
|
|
371
421
|
/**
|
|
422
|
+
* 内部使用的运行时加载器路径。
|
|
423
|
+
*
|
|
372
424
|
* @ignore
|
|
373
425
|
* @internal
|
|
374
426
|
*/
|
|
375
427
|
runtimeLoaderPath?: string;
|
|
376
428
|
/**
|
|
429
|
+
* 指定用于获取 Tailwind 上下文的路径。
|
|
430
|
+
*
|
|
377
431
|
* @group 3.一般配置
|
|
378
432
|
* @version `^2.9.3`
|
|
379
|
-
* @
|
|
433
|
+
* @remarks
|
|
434
|
+
* 在 linked 或 monorepo 场景下可手动指向目标项目的 `package.json` 所在目录。
|
|
380
435
|
*/
|
|
381
436
|
tailwindcssBasedir?: string;
|
|
382
437
|
/**
|
|
438
|
+
* 控制缓存策略。
|
|
439
|
+
*
|
|
383
440
|
* @group 3.一般配置
|
|
384
441
|
* @version `^3.0.11`
|
|
385
|
-
* @description 缓存策略
|
|
386
442
|
*/
|
|
387
443
|
cache?: boolean | ICreateCacheReturnType;
|
|
388
444
|
/**
|
|
445
|
+
* `@babel/parser` 的配置选项。
|
|
446
|
+
*
|
|
389
447
|
* @version `^3.2.0`
|
|
390
448
|
* @group 3.一般配置
|
|
391
|
-
* @description 对解析 js 使用的 `@babel/parser` 工具的配置
|
|
392
449
|
*/
|
|
393
450
|
babelParserOptions?: ParserOptions & {
|
|
394
451
|
cache?: boolean;
|
|
395
452
|
};
|
|
396
453
|
/**
|
|
397
|
-
*
|
|
398
|
-
* @description 用于控制 tailwindcss 子组合器的生效标签范围, 这里我们用一个例子来说明这个配置是干啥用的.
|
|
399
|
-
*
|
|
400
|
-
* 我们布局的时候往往会使用 `space-x-4`
|
|
401
|
-
* 那么实际上会生成这样的css选择器:
|
|
402
|
-
* ```css
|
|
403
|
-
* .space-x-4>:not([hidden])~:not([hidden]){}
|
|
404
|
-
* ```
|
|
405
|
-
* 然而很不幸,这个选择器在小程序中是不支持的,写了会报错导致编译失败。
|
|
406
|
-
* 所以出于保守起见,我把它替换为了:
|
|
407
|
-
* ```css
|
|
408
|
-
* .space-x-4>view + view{}
|
|
409
|
-
* ```
|
|
410
|
-
* 这同时也是默认值, 而这个选项就允许你进行自定义子组合器的行为
|
|
454
|
+
* 自定义 Tailwind 子组合器的替换值。
|
|
411
455
|
*
|
|
412
|
-
*
|
|
413
|
-
*
|
|
456
|
+
* @group 3.一般配置
|
|
457
|
+
* @remarks
|
|
458
|
+
* 为兼容小程序缺乏 `:not([hidden])~` 支持的限制,默认会将 `.space-x-4` 等选择器替换为 `view + view`。可传入字符串或字符串数组以扩展适用标签。
|
|
414
459
|
* ```css
|
|
460
|
+
* // 数组示例
|
|
415
461
|
* .space-y-4>view + view,text + text{}
|
|
416
|
-
* ```
|
|
417
462
|
*
|
|
418
|
-
*
|
|
419
|
-
* ```css
|
|
463
|
+
* // 字符串示例
|
|
420
464
|
* .space-y-4>view,text,button,input ~ view,text,button,input{}
|
|
421
465
|
* ```
|
|
422
466
|
* @default 'view + view'
|
|
423
467
|
*/
|
|
424
468
|
cssChildCombinatorReplaceValue?: string | string[];
|
|
425
469
|
/**
|
|
470
|
+
* `postcss` 的配置选项。
|
|
471
|
+
*
|
|
426
472
|
* @version `^3.2.0`
|
|
427
473
|
* @group 3.一般配置
|
|
428
|
-
* @description 对解析 css 使用的 `postcss` 工具的配置
|
|
429
474
|
*/
|
|
430
475
|
postcssOptions?: LoadedPostcssOptions;
|
|
431
476
|
/**
|
|
477
|
+
* 是否移除 CSS 中的 `:hover` 选择器。
|
|
478
|
+
*
|
|
432
479
|
* @version `^3.2.1`
|
|
433
480
|
* @group 3.一般配置
|
|
434
481
|
* @issue https://github.com/sonofmagic/weapp-tailwindcss/issues/293
|
|
482
|
+
* @remarks
|
|
483
|
+
* 小程序不支持 `:hover`,需要使用组件的 `hover-class`,因此默认删除相关节点。
|
|
435
484
|
* @default `true`
|
|
436
|
-
* @description 是否删除 css :hover 选择器节点,默认为 `true`, 原因在于,小程序 css :hover 是不生效的,要使用 view 这种标签的 hover-class 属性
|
|
437
485
|
*/
|
|
438
486
|
cssRemoveHoverPseudoClass?: boolean;
|
|
439
487
|
/**
|
|
488
|
+
* 是否移除 `@property` 节点。
|
|
489
|
+
*
|
|
440
490
|
* @version `^4.1.2`
|
|
441
491
|
* @group 3.一般配置
|
|
492
|
+
* @remarks
|
|
493
|
+
* 微信小程序可识别 `@property`,但支付宝暂不支持,默认移除以避免构建失败。
|
|
442
494
|
* @default `true`
|
|
443
|
-
* @description 是否删除 `@property` 选择器节点,默认为 `true`, 原因在于,现在微信小程序的 `@property` 是生效的,但是支付宝小程序遇到这个会直接挂掉
|
|
444
495
|
*/
|
|
445
496
|
cssRemoveProperty?: boolean;
|
|
446
497
|
/**
|
|
498
|
+
* 自定义 patcher 参数。
|
|
499
|
+
*
|
|
447
500
|
* @group 3.一般配置
|
|
448
|
-
* @description 自定义 patcher 参数
|
|
449
501
|
*/
|
|
450
502
|
tailwindcssPatcherOptions?: TailwindcssPatcherOptions;
|
|
451
503
|
/**
|
|
504
|
+
* 控制命令行日志输出级别。
|
|
505
|
+
*
|
|
452
506
|
* @group 3.一般配置
|
|
453
|
-
* @
|
|
507
|
+
* @remarks
|
|
508
|
+
* 默认 `info`,可设置为 `silent` 屏蔽全部输出。
|
|
454
509
|
*/
|
|
455
510
|
logLevel?: 'info' | 'warn' | 'error' | 'silent';
|
|
456
511
|
}
|
|
457
512
|
interface UserDefinedOptions {
|
|
458
513
|
/**
|
|
514
|
+
* 选择用于解析 JS 的 AST 工具。
|
|
515
|
+
*
|
|
459
516
|
* @group 4.即将废弃配置
|
|
460
|
-
* @
|
|
517
|
+
* @remarks
|
|
518
|
+
* 默认使用 `babel`,安装 `@ast-grep/napi` 并设置为 `ast-grep` 可获得更快速度。
|
|
461
519
|
* :::danger
|
|
462
|
-
*
|
|
463
|
-
*
|
|
464
|
-
* 废弃原因:
|
|
465
|
-
*
|
|
466
|
-
* 虽然 `@ast-grep/napi` 提供了更快的速度,但是 `babel` 有更强的静态分析 `js` 能力,使得后续一些新功能的开发无法使用 `@ast-grep/napi` 实现,所以废弃只保留 `babel` 的方式
|
|
520
|
+
* 此配置将在 `5.x` 版本移除,后续仅保留 `babel` 实现。
|
|
467
521
|
* :::
|
|
468
522
|
*/
|
|
469
523
|
jsAstTool?: 'babel' | 'ast-grep';
|
|
470
524
|
/**
|
|
525
|
+
* 是否对指定范围的类名执行压缩混淆。
|
|
526
|
+
*
|
|
471
527
|
* @group 4.即将废弃配置
|
|
472
|
-
* @
|
|
528
|
+
* @remarks
|
|
529
|
+
* 默认关闭,可参考 [unplugin-tailwindcss-mangle](https://github.com/sonofmagic/tailwindcss-mangle/tree/main/packages/unplugin-tailwindcss-mangle) 获取完整配置。
|
|
473
530
|
* :::danger
|
|
474
|
-
*
|
|
475
|
-
*
|
|
476
|
-
* 废弃原因:
|
|
477
|
-
*
|
|
478
|
-
* mangle 相关的功能会被迁移到另外一个项目: [`tailwindcss-mangle`](https://github.com/sonofmagic/tailwindcss-mangle) 中去,还想要这个功能可以2个插件结合使用
|
|
531
|
+
* 此配置将在 `5.x` 中移除,功能已迁移至 [`tailwindcss-mangle`](https://github.com/sonofmagic/tailwindcss-mangle)。
|
|
479
532
|
* :::
|
|
480
533
|
*/
|
|
481
534
|
mangle?: boolean | IMangleOptions;
|
|
482
535
|
/**
|
|
536
|
+
* 自定义 PostCSS 规则的处理回调。
|
|
537
|
+
*
|
|
483
538
|
* @group 4.即将废弃配置
|
|
484
|
-
* @description 用于自定义处理 css 的回调函数,可根据 Postcss walk 方法自由定制处理方案的 callback 方法
|
|
485
539
|
*/
|
|
486
540
|
customRuleCallback?: CustomRuleCallback;
|
|
487
541
|
}
|