weapp-tailwindcss 4.9.2 → 4.9.4

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.
Files changed (54) hide show
  1. package/dist/{chunk-WGBJY2H3.mjs → chunk-3IXWQT3G.mjs} +646 -565
  2. package/dist/{chunk-5O6237HX.js → chunk-4RUFPPI6.js} +400 -377
  3. package/dist/{chunk-2L6NDZIQ.mjs → chunk-6HOLMRXS.mjs} +2 -2
  4. package/dist/{chunk-ZE7JKKFT.mjs → chunk-7D27E7TU.mjs} +438 -415
  5. package/dist/chunk-AJDZJQNR.mjs +444 -0
  6. package/dist/{chunk-U7BH6QHE.js → chunk-DKX737YI.js} +277 -236
  7. package/dist/{chunk-VU2GIXVH.js → chunk-EZWWOZAH.js} +7 -7
  8. package/dist/{chunk-3SKEY32E.mjs → chunk-F2CKKG6Q.mjs} +67 -67
  9. package/dist/{chunk-DNRNFN4I.js → chunk-KHBSYJ76.js} +44 -44
  10. package/dist/{chunk-XXJNXESJ.js → chunk-MVOIVNKL.js} +635 -554
  11. package/dist/{chunk-G5OV7IOU.mjs → chunk-QAEALIIZ.mjs} +2 -2
  12. package/dist/{chunk-FFGR5V3H.mjs → chunk-SPH6SCTM.mjs} +1 -1
  13. package/dist/{chunk-2WPTDMN3.js → chunk-VPHA77FH.js} +61 -61
  14. package/dist/{chunk-DSD5JRCQ.mjs → chunk-WCM6ODS4.mjs} +265 -224
  15. package/dist/{chunk-CBOVUIXD.mjs → chunk-XI2H73CF.mjs} +41 -41
  16. package/dist/{chunk-UAEME5HT.js → chunk-Y6F6NBA7.js} +1 -1
  17. package/dist/chunk-Z3A2XYUL.js +441 -0
  18. package/dist/{chunk-W3MTTQ5M.js → chunk-ZQ7ET56G.js} +5 -5
  19. package/dist/cli.js +182 -136
  20. package/dist/cli.mjs +194 -148
  21. package/dist/core.js +10 -10
  22. package/dist/core.mjs +4 -4
  23. package/dist/css-macro/postcss.js +1 -1
  24. package/dist/css-macro/postcss.mjs +1 -1
  25. package/dist/css-macro.js +1 -1
  26. package/dist/css-macro.mjs +1 -1
  27. package/dist/defaults.js +1 -1
  28. package/dist/defaults.mjs +1 -1
  29. package/dist/gulp.js +6 -6
  30. package/dist/gulp.mjs +5 -5
  31. package/dist/index.js +10 -10
  32. package/dist/index.mjs +9 -9
  33. package/dist/postcss-html-transform.js +1 -1
  34. package/dist/postcss-html-transform.mjs +1 -1
  35. package/dist/presets.js +5 -5
  36. package/dist/presets.mjs +2 -2
  37. package/dist/reset.d.mts +2 -1
  38. package/dist/reset.d.ts +2 -1
  39. package/dist/reset.js +25 -21
  40. package/dist/reset.mjs +25 -21
  41. package/dist/types.d.mts +503 -474
  42. package/dist/types.d.ts +503 -474
  43. package/dist/types.js +1 -1
  44. package/dist/types.mjs +1 -1
  45. package/dist/vite.js +7 -7
  46. package/dist/vite.mjs +6 -6
  47. package/dist/weapp-tw-css-import-rewrite-loader.js +2 -4
  48. package/dist/webpack.js +8 -8
  49. package/dist/webpack.mjs +7 -7
  50. package/dist/webpack4.js +351 -307
  51. package/dist/webpack4.mjs +341 -297
  52. package/package.json +10 -10
  53. package/dist/chunk-5AKI6FQP.mjs +0 -397
  54. package/dist/chunk-SNEMGP42.js +0 -394
package/dist/types.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  import { ParserOptions, ParseError } from '@babel/parser';
2
- import { CssPreflightOptions, CssCalcOptions, Rem2rpxOptions, Px2rpxOptions, PresetEnvOptions, LoadedPostcssOptions, IStyleHandlerOptions } from '@weapp-tailwindcss/postcss';
2
+ import { LoadedPostcssOptions, CssPreflightOptions, CssCalcOptions, Rem2rpxOptions, Px2rpxOptions, PresetEnvOptions, IStyleHandlerOptions } from '@weapp-tailwindcss/postcss';
3
3
  export { CssPreflightOptions, IStyleHandlerOptions } from '@weapp-tailwindcss/postcss';
4
4
  import { SourceMap } from 'magic-string';
5
5
  import { Result, Root, Document } from 'postcss';
6
- import { TailwindcssPatchOptions, ILengthUnitsPatchOptions, TailwindcssPatcher } from 'tailwindcss-patch';
6
+ import { ILengthUnitsPatchOptions, TailwindcssPatchOptions, TailwindcssPatcher } from 'tailwindcss-patch';
7
7
  import { Buffer } from 'node:buffer';
8
8
  import { sources } from 'webpack';
9
9
  import { LRUCache } from 'lru-cache';
@@ -41,6 +41,174 @@ interface ICreateCacheReturnType {
41
41
  process: <T extends CacheValue>(options: CacheProcessOptions<T>) => Promise<T>;
42
42
  }
43
43
 
44
+ declare module '../typedoc.export' {
45
+ interface UserDefinedOptions {
46
+ /**
47
+ * 控制 Tailwind 自定义长度单位补丁。
48
+ *
49
+ * @group 3.一般配置
50
+ * @see https://github.com/sonofmagic/weapp-tailwindcss/issues/110
51
+ * @remarks
52
+ * TailwindCSS 3.2.0 起对任意值执行长度单位校验,会将未声明的 `rpx` 识别为颜色。本选项默认开启以注入 `rpx` 支持。当 Node.js 在插件执行前已缓存 `tailwindcss` 模块时,首轮运行可能未生效,可通过在 `postinstall` 中执行 `weapp-tw patch` 提前打补丁。
53
+ * ```diff
54
+ * "scripts": {
55
+ * + "postinstall": "weapp-tw patch"
56
+ * }
57
+ * ```
58
+ */
59
+ supportCustomLengthUnitsPatch?: ILengthUnitsPatchOptions | boolean;
60
+ /**
61
+ * 声明所使用的框架类型。
62
+ *
63
+ * @group 3.一般配置
64
+ * @remarks
65
+ * 用于辅助定位主要的 CSS bundle,以便默认的 `mainCssChunkMatcher` 做出更准确的匹配,未传入时将尝试自动猜测变量注入位置。
66
+ */
67
+ appType?: AppType;
68
+ /**
69
+ * TailwindCSS 任意值的相关配置。
70
+ *
71
+ * @group 3.一般配置
72
+ */
73
+ arbitraryValues?: IArbitraryValues;
74
+ /**
75
+ * 控制 JS 字面量是否需要保留。
76
+ *
77
+ * @group 3.一般配置
78
+ * @since ^2.6.1
79
+ * @remarks
80
+ * 当 Tailwind 与 JS 字面量冲突时,可通过回调返回 `true` 保留当前值,返回 `false` 或 `undefined` 则继续转义。默认保留所有带 `*` 的字符串字面量。
81
+ */
82
+ jsPreserveClass?: (keyword: string) => boolean | undefined;
83
+ /**
84
+ * 是否替换运行时依赖包名。
85
+ *
86
+ * @group 3.一般配置
87
+ * @remarks
88
+ * 适用于运行时包名需要重定向的场景,例如:
89
+ * - 小程序侧无法直接安装 `tailwind-merge`/`class-variance-authority`/`tailwind-variants`,需要替换为内置的 weapp 版本。
90
+ * - 企业内私有镜像/多包发布导致运行时包名不同,希望在转换后统一到目标包名。
91
+ * 传入 `true` 使用内置替换表,或传入对象自定义映射。
92
+ * @example
93
+ * ```ts
94
+ * replaceRuntimePackages: {
95
+ * 'tailwind-merge': '@weapp-tailwindcss/merge',
96
+ * 'class-variance-authority': '@weapp-tailwindcss/cva',
97
+ * }
98
+ * ```
99
+ */
100
+ replaceRuntimePackages?: boolean | Record<string, string>;
101
+ /**
102
+ * 禁用默认的 `wxml` 模板替换器。
103
+ *
104
+ * @group 3.一般配置
105
+ * @since ^2.6.2
106
+ * @remarks
107
+ * 启用后模板匹配完全交由 [`customAttributes`](/docs/api/interfaces/UserDefinedOptions#customattributes) 管理,需要自行覆盖默认的 `class` / `hover-class` 等匹配规则。
108
+ * @default false
109
+ */
110
+ disabledDefaultTemplateHandler?: boolean;
111
+ /**
112
+ * 内部使用的运行时加载器路径。
113
+ *
114
+ * @ignore
115
+ * @internal
116
+ */
117
+ runtimeLoaderPath?: string;
118
+ /**
119
+ * 内部使用的 CSS import 重写加载器路径。
120
+ *
121
+ * @ignore
122
+ * @internal
123
+ */
124
+ runtimeCssImportRewriteLoaderPath?: string;
125
+ /**
126
+ * 指定用于获取 Tailwind 上下文的路径。
127
+ *
128
+ * @group 3.一般配置
129
+ * @since ^2.9.3
130
+ * @remarks
131
+ * 在 linked 或 monorepo 场景下可手动指向目标项目的 `package.json` 所在目录。
132
+ */
133
+ tailwindcssBasedir?: string;
134
+ /**
135
+ * 控制缓存策略。
136
+ *
137
+ * @group 3.一般配置
138
+ * @since ^3.0.11
139
+ */
140
+ cache?: boolean | ICreateCacheReturnType;
141
+ /**
142
+ * `@babel/parser` 的配置选项。
143
+ *
144
+ * @since ^3.2.0
145
+ * @group 3.一般配置
146
+ */
147
+ babelParserOptions?: ParserOptions & {
148
+ cache?: boolean;
149
+ cacheKey?: string;
150
+ };
151
+ /**
152
+ * 自定义 Tailwind 子组合器的替换值。
153
+ *
154
+ * @group 3.一般配置
155
+ * @remarks
156
+ * 为兼容小程序缺乏 `:not([hidden])~` 支持的限制,默认会将 `.space-x-4` 等选择器替换为 `view + view`。可传入字符串或字符串数组以扩展适用标签。
157
+ * ```css
158
+ * // 数组示例
159
+ * .space-y-4>view + view,text + text{}
160
+ *
161
+ * // 字符串示例
162
+ * .space-y-4>view,text,button,input ~ view,text,button,input{}
163
+ * ```
164
+ * @default 'view + view'
165
+ */
166
+ cssChildCombinatorReplaceValue?: string | string[];
167
+ /**
168
+ * `postcss` 的配置选项。
169
+ *
170
+ * @since ^3.2.0
171
+ * @group 3.一般配置
172
+ */
173
+ postcssOptions?: LoadedPostcssOptions;
174
+ /**
175
+ * 是否移除 CSS 中的 `:hover` 选择器。
176
+ *
177
+ * @since ^3.2.1
178
+ * @group 3.一般配置
179
+ * @see https://github.com/sonofmagic/weapp-tailwindcss/issues/293
180
+ * @remarks
181
+ * 小程序不支持 `:hover`,需要使用组件的 `hover-class`,因此默认删除相关节点。
182
+ * @default `true`
183
+ */
184
+ cssRemoveHoverPseudoClass?: boolean;
185
+ /**
186
+ * 是否移除 `@property` 节点。
187
+ *
188
+ * @since ^4.1.2
189
+ * @group 3.一般配置
190
+ * @remarks
191
+ * 微信小程序可识别 `@property`,但支付宝暂不支持,默认移除以避免构建失败。
192
+ * @default `true`
193
+ */
194
+ cssRemoveProperty?: boolean;
195
+ /**
196
+ * 自定义 patcher 参数。
197
+ *
198
+ * @group 3.一般配置
199
+ */
200
+ tailwindcssPatcherOptions?: TailwindcssPatchOptions;
201
+ /**
202
+ * 控制命令行日志输出级别。
203
+ *
204
+ * @group 3.一般配置
205
+ * @remarks
206
+ * 默认 `info`,可设置为 `silent` 屏蔽全部输出。
207
+ */
208
+ logLevel?: 'info' | 'warn' | 'error' | 'silent';
209
+ }
210
+ }
211
+
44
212
  /**
45
213
  * 禁用插件功能的细粒度选项。
46
214
  *
@@ -63,492 +231,353 @@ interface DisabledOptions {
63
231
  */
64
232
  rewriteCssImports?: boolean;
65
233
  }
66
- interface UserDefinedOptions {
67
- /**
68
- * 是否禁用此插件。
69
- *
70
- * @group 0.重要配置
71
- * @remarks
72
- * 在多平台构建场景下常用:小程序构建保持默认,非小程序环境(H5、App)传入 `true` 即可跳过转换。
73
- * @example
74
- * ```ts
75
- * // uni-app vue3 vite
76
- * import process from 'node:process'
77
- *
78
- * const isH5 = process.env.UNI_PLATFORM === 'h5'
79
- * const isApp = process.env.UNI_PLATFORM === 'app'
80
- * const disabled = isH5 || isApp
81
- *
82
- * import { UnifiedViteWeappTailwindcssPlugin as uvtw } from 'weapp-tailwindcss/vite'
83
- *
84
- * uvtw({
85
- * disabled,
86
- * })
87
- * ```
88
- */
89
- disabled?: boolean | DisabledOptions;
90
- /**
91
- * 自定义 `wxml` 标签属性的转换规则。
92
- *
93
- * @group 0.重要配置
94
- * @remarks
95
- * 默认会转换所有标签上的 `class` 与 `hover-class`。此配置允许通过 `Map` 或对象为特定标签指定需要转换的属性字符串或正则表达式数组。
96
- * - 使用 `'*'` 作为键可为所有标签追加通用规则。
97
- * - 支持传入 `Map<string | RegExp, (string | RegExp)[]>` 以满足复杂匹配需求。
98
- * - 常见场景包括通过组件 `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)。
99
- * 如果自定义规则已经覆盖默认的 `class`/`hover-class`,可开启 [`disabledDefaultTemplateHandler`](/docs/api/interfaces/UserDefinedOptions#disableddefaulttemplatehandler) 以关闭内置模板处理器。
100
- * @example
101
- * ```js
102
- * const customAttributes = {
103
- * '*': [/[A-Za-z]?[A-Za-z-]*[Cc]lass/],
104
- * 'van-image': ['custom-class'],
105
- * 'ice-button': ['testClass'],
106
- * }
107
- * ```
108
- */
109
- customAttributes?: ICustomAttributes;
110
- /**
111
- * 自定义 class 名称的替换字典。
112
- *
113
- * @group 0.重要配置
114
- * @remarks
115
- * 默认策略会将小程序不允许的字符映射为等长度的替代字符串,因此无法通过结果反推出原始类名。如需完全自定义,可传入 `Record<string, string>`,只需确保生成的类名不会与已有样式冲突。示例参考 [dic.ts](https://github.com/sonofmagic/weapp-core/blob/main/packages/escape/src/dic.ts)。
116
- * @default MappingChars2String
117
- */
118
- customReplaceDictionary?: Record<string, string>;
119
- /**
120
- * 忽略指定标签模板表达式中的标识符。
121
- *
122
- * @since ^4.0.0
123
- * @group 0.重要配置
124
- * @remarks
125
- * 当模板字符串被这些标识符包裹时,将跳过转义处理。
126
- * @default ['weappTwIgnore']
127
- */
128
- ignoreTaggedTemplateExpressionIdentifiers?: (string | RegExp)[];
129
- /**
130
- * 忽略指定调用表达式中的标识符。
131
- *
132
- * @since ^4.0.0
133
- * @group 0.重要配置
134
- * @remarks
135
- * 使用这些方法包裹的模板字符串或字符串字面量会跳过转义,常与 `@weapp-tailwindcss/merge` 配合(如 `['twMerge', 'twJoin', 'cva']`)。
136
- */
137
- ignoreCallExpressionIdentifiers?: (string | RegExp)[];
138
- /**
139
- * @internal
140
- */
141
- replaceRuntimePackages?: boolean | Record<string, string>;
142
- /**
143
- * 控制在视图节点上注入的 CSS 预设。
144
- *
145
- * @group 0.重要配置
146
- * @see https://github.com/sonofmagic/weapp-tailwindcss/issues/7
147
- * @remarks
148
- * 默认会向所有 `view`/`text` 元素注入 Tailwind 风格的基础样式,可通过此配置禁用、调整或补充规则,受 `cssPreflightRange` 影响。
149
- * @example
150
- * ```js
151
- * cssPreflight: {
152
- * 'box-sizing': 'border-box',
153
- * 'border-width': '0',
154
- * 'border-style': 'solid',
155
- * 'border-color': 'currentColor',
156
- * }
157
- *
158
- * cssPreflight: false
159
- *
160
- * cssPreflight: {
161
- * 'box-sizing': false,
162
- * background: 'black',
163
- * }
164
- * ```
165
- */
166
- cssPreflight?: CssPreflightOptions;
167
- /**
168
- * 控制 `cssPreflight` 注入的 DOM 选择器范围。
169
- *
170
- * @group 0.重要配置
171
- * @see https://github.com/sonofmagic/weapp-tailwindcss/pull/62
172
- * @remarks
173
- * 仅 `view`、`text` 及其伪元素会受影响。设置为 `'all'` 可以覆盖所有元素,此时需自行处理与宿主默认样式的冲突。
174
- */
175
- cssPreflightRange?: 'all';
176
- /**
177
- * 预计算 CSS 变量或 `calc` 表达式的结果。
178
- *
179
- * @group 0.重要配置
180
- * @since ^4.3.0
181
- * @remarks
182
- * 解决部分机型对 `calc` 计算不一致的问题,可传入布尔值、选项对象或自定义匹配列表(支持正则)。在启用计算后,可通过 `includeCustomProperties` 指定需要保留的变量。
183
- * @example
184
- * ```css
185
- * // 原始输出
186
- * page,
187
- * :root {
188
- * --spacing: 8rpx;
189
- * }
190
- * .h-2 {
191
- * height: calc(var(--spacing) * 2);
192
- * }
193
- * ```
194
- *
195
- * ```css
196
- * // 启用 cssCalc 后
197
- * .h-2 {
198
- * height: 16rpx;
199
- * height: calc(var(--spacing) * 2);
200
- * }
201
- * ```
202
- *
203
- * ```js
204
- * cssCalc: ['--spacing']
205
- * cssCalc: { includeCustomProperties: ['--spacing'] }
206
- * ```
207
- */
208
- cssCalc?: boolean | CssCalcOptions | (string | RegExp)[];
209
- /**
210
- * 是否额外注入 `tailwindcss css var scope`。
211
- *
212
- * @group 0.重要配置
213
- * @since ^2.6.0
214
- * @remarks
215
- * 当构建链路(例如 `@tarojs/plugin-html`)移除了包含 `*` 的选择器时,可启用该选项重新写入变量作用域,以避免渐变等功能失效。
216
- * @default false
217
- */
218
- injectAdditionalCssVarScope?: boolean;
219
- /**
220
- * 是否在 webpack/vite 阶段自动把 CSS 中的 `@import 'tailwindcss'` 映射为 `weapp-tailwindcss`。
221
- *
222
- * @group 0.重要配置
223
- * @remarks
224
- * 开启后打包链路只会在处理样式时拦截 `tailwindcss` 的导入路径(JS/TS `import 'tailwindcss'` 不会被修改),让源码可以继续写 `@import 'tailwindcss';`,同时输出 weapp-tailwindcss 的样式。传入 `false` 可完全关闭该行为。
225
- * @default true
226
- */
227
- rewriteCssImports?: boolean;
228
- /**
229
- * 控制 CSS 选择器的替换规则。
230
- *
231
- * @group 0.重要配置
232
- */
233
- cssSelectorReplacement?: {
234
+
235
+ declare module '../typedoc.export' {
236
+ interface UserDefinedOptions {
234
237
  /**
235
- * 将全局选择器 `:root` 替换为指定值。
238
+ * 是否禁用此插件。
236
239
  *
237
- * @default `'page'` <br/>
240
+ * @group 0.重要配置
238
241
  * @remarks
239
- * 设置为 `false` 时不再替换,可根据宿主环境(例如 RootPortal)传入数组值。
242
+ * 在多平台构建场景下常用:小程序构建保持默认,非小程序环境(H5、App)传入 `true` 即可跳过转换。
240
243
  * @example
241
- * root: ['page', 'wx-root-content']
244
+ * ```ts
245
+ * // uni-app vue3 vite
246
+ * import process from 'node:process'
247
+ *
248
+ * const isH5 = process.env.UNI_PLATFORM === 'h5'
249
+ * const isApp = process.env.UNI_PLATFORM === 'app'
250
+ * const disabled = isH5 || isApp
251
+ *
252
+ * import { UnifiedViteWeappTailwindcssPlugin as uvtw } from 'weapp-tailwindcss/vite'
253
+ *
254
+ * uvtw({
255
+ * disabled,
256
+ * })
257
+ * ```
242
258
  */
243
- root?: string | string[] | false;
259
+ disabled?: boolean | DisabledOptions;
244
260
  /**
245
- * 将全局选择器 `*` 替换为指定值。
261
+ * 自定义 `wxml` 标签属性的转换规则。
246
262
  *
247
- * @see https://github.com/sonofmagic/weapp-tailwindcss/issues/81 <br/>
248
- * @default `['view','text']` <br/>
263
+ * @group 0.重要配置
249
264
  * @remarks
250
- * 小程序环境不支持 `*`,因此默认转换为 `view`、`text`;设置为 `false` 会留下原始选择器。
265
+ * 默认会转换所有标签上的 `class` `hover-class`。此配置允许通过 `Map` 或对象为特定标签指定需要转换的属性字符串或正则表达式数组。
266
+ * - 使用 `'*'` 作为键可为所有标签追加通用规则。
267
+ * - 支持传入 `Map<string | RegExp, (string | RegExp)[]>` 以满足复杂匹配需求。
268
+ * - 常见场景包括通过组件 `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)。
269
+ * 如果自定义规则已经覆盖默认的 `class`/`hover-class`,可开启 [`disabledDefaultTemplateHandler`](/docs/api/interfaces/UserDefinedOptions#disableddefaulttemplatehandler) 以关闭内置模板处理器。
270
+ * @example
271
+ * ```js
272
+ * const customAttributes = {
273
+ * '*': [/[A-Za-z]?[A-Za-z-]*[Cc]lass/],
274
+ * 'van-image': ['custom-class'],
275
+ * 'ice-button': ['testClass'],
276
+ * }
277
+ * ```
251
278
  */
252
- universal?: string | string[] | false;
253
- };
254
- /**
255
- * rem 到 rpx 的转换配置。
256
- *
257
- * @since ^3.0.0
258
- * @group 0.重要配置
259
- * @remarks
260
- * 传入 `true` 使用默认配置,或提供 [postcss-rem-to-responsive-pixel](https://www.npmjs.com/package/postcss-rem-to-responsive-pixel) 支持的完整选项。
261
- * ```ts
262
- * {
263
- * rootValue: 32,
264
- * propList: ['*'],
265
- * transformUnit: 'rpx',
266
- * }
267
- * ```
268
- */
269
- rem2rpx?: boolean | Rem2rpxOptions;
270
- /**
271
- * px rpx 的转换配置。
272
- *
273
- * @group 0.重要配置
274
- * @since ^4.3.0
275
- * @remarks
276
- * 传入 `true` 启用默认映射(`1px = 1rpx`),或通过对象自定义更多行为。
277
- */
278
- px2rpx?: boolean | Px2rpxOptions;
279
- /**
280
- * `postcss-preset-env` 的配置项。
281
- *
282
- * @since ^4.0.0
283
- * @group 0.重要配置
284
- * @see https://preset-env.cssdb.org/
285
- * @see https://github.com/csstools/postcss-plugins/tree/main/plugin-packs/postcss-preset-env#readme
286
- */
287
- cssPresetEnv?: PresetEnvOptions;
288
- /**
289
- * 为不同版本的 Tailwind 配置行为。
290
- *
291
- * @since ^4.0.0
292
- * @group 0.重要配置
293
- */
294
- tailwindcss?: TailwindcssPatchOptions['tailwind'];
295
- /**
296
- * 指定 tailwindcss@4 的入口 CSS。
297
- *
298
- * @since ^4.2.6
299
- * @group 0.重要配置
300
- * @remarks
301
- * 未配置时无法加载自定义插件,等价于设置 `tailwindcss.v4.cssEntries`。
302
- */
303
- cssEntries?: string[];
304
- /**
305
- * 配置 uni-app x 场景的行为。
306
- *
307
- * @since ^4.2.0
308
- * @group 0.重要配置
309
- * @ignore
310
- */
311
- uniAppX?: boolean;
279
+ customAttributes?: ICustomAttributes;
280
+ /**
281
+ * 自定义 class 名称的替换字典。
282
+ *
283
+ * @group 0.重要配置
284
+ * @remarks
285
+ * 默认策略会将小程序不允许的字符映射为等长度的替代字符串,因此无法通过结果反推出原始类名。如需完全自定义,可传入 `Record<string, string>`,只需确保生成的类名不会与已有样式冲突。示例参考 [dic.ts](https://github.com/sonofmagic/weapp-core/blob/main/packages/escape/src/dic.ts)。
286
+ * @default MappingChars2String
287
+ */
288
+ customReplaceDictionary?: Record<string, string>;
289
+ /**
290
+ * 忽略指定标签模板表达式中的标识符。
291
+ *
292
+ * @since ^4.0.0
293
+ * @group 0.重要配置
294
+ * @remarks
295
+ * 当模板字符串被这些标识符包裹时,将跳过转义处理。
296
+ * @default ['weappTwIgnore']
297
+ */
298
+ ignoreTaggedTemplateExpressionIdentifiers?: (string | RegExp)[];
299
+ /**
300
+ * 忽略指定调用表达式中的标识符。
301
+ *
302
+ * @since ^4.0.0
303
+ * @group 0.重要配置
304
+ * @remarks
305
+ * 使用这些方法包裹的模板字符串或字符串字面量会跳过转义,常与 `@weapp-tailwindcss/merge` 配合(如 `['twMerge', 'twJoin', 'cva']`)。
306
+ */
307
+ ignoreCallExpressionIdentifiers?: (string | RegExp)[];
308
+ /**
309
+ * 控制在视图节点上注入的 CSS 预设。
310
+ *
311
+ * @group 0.重要配置
312
+ * @see https://github.com/sonofmagic/weapp-tailwindcss/issues/7
313
+ * @remarks
314
+ * 默认会向所有 `view`/`text` 元素注入 Tailwind 风格的基础样式,可通过此配置禁用、调整或补充规则,受 `cssPreflightRange` 影响。
315
+ * @example
316
+ * ```js
317
+ * cssPreflight: {
318
+ * 'box-sizing': 'border-box',
319
+ * 'border-width': '0',
320
+ * 'border-style': 'solid',
321
+ * 'border-color': 'currentColor',
322
+ * }
323
+ *
324
+ * cssPreflight: false
325
+ *
326
+ * cssPreflight: {
327
+ * 'box-sizing': false,
328
+ * background: 'black',
329
+ * }
330
+ * ```
331
+ */
332
+ cssPreflight?: CssPreflightOptions;
333
+ /**
334
+ * 控制 `cssPreflight` 注入的 DOM 选择器范围。
335
+ *
336
+ * @group 0.重要配置
337
+ * @see https://github.com/sonofmagic/weapp-tailwindcss/pull/62
338
+ * @remarks
339
+ * 仅 `view`、`text` 及其伪元素会受影响。设置为 `'all'` 可以覆盖所有元素,此时需自行处理与宿主默认样式的冲突。
340
+ */
341
+ cssPreflightRange?: 'all';
342
+ /**
343
+ * 预计算 CSS 变量或 `calc` 表达式的结果。
344
+ *
345
+ * @group 0.重要配置
346
+ * @since ^4.3.0
347
+ * @remarks
348
+ * 解决部分机型对 `calc` 计算不一致的问题,可传入布尔值、选项对象或自定义匹配列表(支持正则)。在启用计算后,可通过 `includeCustomProperties` 指定需要保留的变量。
349
+ * @example
350
+ * ```css
351
+ * // 原始输出
352
+ * page,
353
+ * :root {
354
+ * --spacing: 8rpx;
355
+ * }
356
+ * .h-2 {
357
+ * height: calc(var(--spacing) * 2);
358
+ * }
359
+ * ```
360
+ *
361
+ * ```css
362
+ * // 启用 cssCalc 后
363
+ * .h-2 {
364
+ * height: 16rpx;
365
+ * height: calc(var(--spacing) * 2);
366
+ * }
367
+ * ```
368
+ *
369
+ * ```js
370
+ * cssCalc: ['--spacing']
371
+ * cssCalc: { includeCustomProperties: ['--spacing'] }
372
+ * ```
373
+ */
374
+ cssCalc?: boolean | CssCalcOptions | (string | RegExp)[];
375
+ /**
376
+ * 是否额外注入 `tailwindcss css var scope`。
377
+ *
378
+ * @group 0.重要配置
379
+ * @since ^2.6.0
380
+ * @remarks
381
+ * 当构建链路(例如 `@tarojs/plugin-html`)移除了包含 `*` 的选择器时,可启用该选项重新写入变量作用域,以避免渐变等功能失效。
382
+ * @default false
383
+ */
384
+ injectAdditionalCssVarScope?: boolean;
385
+ /**
386
+ * 是否在 webpack/vite 阶段自动把 CSS 中的 `@import 'tailwindcss'` 映射为 `weapp-tailwindcss`。
387
+ *
388
+ * @group 0.重要配置
389
+ * @remarks
390
+ * 开启后打包链路只会在处理样式时拦截 `tailwindcss` 的导入路径(JS/TS `import 'tailwindcss'` 不会被修改),让源码可以继续写 `@import 'tailwindcss';`,同时输出 weapp-tailwindcss 的样式。传入 `false` 可完全关闭该行为。
391
+ * @default true
392
+ */
393
+ rewriteCssImports?: boolean;
394
+ /**
395
+ * 控制 CSS 选择器的替换规则。
396
+ *
397
+ * @group 0.重要配置
398
+ */
399
+ cssSelectorReplacement?: {
400
+ /**
401
+ * 将全局选择器 `:root` 替换为指定值。
402
+ *
403
+ * @default `'page'` <br/>
404
+ * @remarks
405
+ * 设置为 `false` 时不再替换,可根据宿主环境(例如 RootPortal)传入数组值。
406
+ * @example
407
+ * root: ['page', 'wx-root-content']
408
+ */
409
+ root?: string | string[] | false;
410
+ /**
411
+ * 将全局选择器 `*` 替换为指定值。
412
+ *
413
+ * @see https://github.com/sonofmagic/weapp-tailwindcss/issues/81 <br/>
414
+ * @default `['view','text']` <br/>
415
+ * @remarks
416
+ * 小程序环境不支持 `*`,因此默认转换为 `view`、`text`;设置为 `false` 会留下原始选择器。
417
+ */
418
+ universal?: string | string[] | false;
419
+ };
420
+ /**
421
+ * rem 到 rpx 的转换配置。
422
+ *
423
+ * @since ^3.0.0
424
+ * @group 0.重要配置
425
+ * @remarks
426
+ * 传入 `true` 使用默认配置,或提供 [postcss-rem-to-responsive-pixel](https://www.npmjs.com/package/postcss-rem-to-responsive-pixel) 支持的完整选项。
427
+ * ```ts
428
+ * {
429
+ * rootValue: 32,
430
+ * propList: ['*'],
431
+ * transformUnit: 'rpx',
432
+ * }
433
+ * ```
434
+ */
435
+ rem2rpx?: boolean | Rem2rpxOptions;
436
+ /**
437
+ * px 到 rpx 的转换配置。
438
+ *
439
+ * @group 0.重要配置
440
+ * @since ^4.3.0
441
+ * @remarks
442
+ * 传入 `true` 启用默认映射(`1px = 1rpx`),或通过对象自定义更多行为。
443
+ */
444
+ px2rpx?: boolean | Px2rpxOptions;
445
+ /**
446
+ * `postcss-preset-env` 的配置项。
447
+ *
448
+ * @since ^4.0.0
449
+ * @group 0.重要配置
450
+ * @see https://preset-env.cssdb.org/
451
+ * @see https://github.com/csstools/postcss-plugins/tree/main/plugin-packs/postcss-preset-env#readme
452
+ */
453
+ cssPresetEnv?: PresetEnvOptions;
454
+ /**
455
+ * 为不同版本的 Tailwind 配置行为。
456
+ *
457
+ * @since ^4.0.0
458
+ * @group 0.重要配置
459
+ */
460
+ tailwindcss?: TailwindcssPatchOptions['tailwind'];
461
+ /**
462
+ * 指定 tailwindcss@4 的入口 CSS。
463
+ *
464
+ * @since ^4.2.6
465
+ * @group 0.重要配置
466
+ * @remarks
467
+ * 未配置时无法加载自定义插件,等价于设置 `tailwindcss.v4.cssEntries`。
468
+ */
469
+ cssEntries?: string[];
470
+ /**
471
+ * 配置 uni-app x 场景的行为。
472
+ *
473
+ * @since ^4.2.0
474
+ * @group 0.重要配置
475
+ * @ignore
476
+ */
477
+ uniAppX?: boolean;
478
+ }
312
479
  }
313
- interface UserDefinedOptions {
314
- /**
315
- * 匹配需要处理的 `wxml` 等模板文件。
316
- *
317
- * @group 1.文件匹配
318
- */
319
- htmlMatcher?: (name: string) => boolean;
320
- /**
321
- * 匹配需要处理的 `wxss` 等样式文件。
322
- *
323
- * @group 1.文件匹配
324
- */
325
- cssMatcher?: (name: string) => boolean;
326
- /**
327
- * 匹配需要处理的编译后 `js` 文件。
328
- *
329
- * @group 1.文件匹配
330
- */
331
- jsMatcher?: (name: string) => boolean;
332
- /**
333
- * 匹配负责注入 Tailwind CSS 变量作用域的 CSS Bundle。
334
- *
335
- * @group 1.文件匹配
336
- * @remarks
337
- * 在处理 `::before`/`::after` 等不兼容选择器时,建议手动指定文件位置。
338
- */
339
- mainCssChunkMatcher?: (name: string, appType?: AppType) => boolean;
340
- /**
341
- * 匹配各端的 `wxs`/`sjs`/`.filter.js` 文件。
342
- *
343
- * @group 1.文件匹配
344
- * @experimental 实验性质,有可能会改变
345
- * @remarks
346
- * 配置前请确保在 `tailwind.config.js` 的 `content` 中包含对应格式。
347
- * @default ()=>false
348
- */
349
- wxsMatcher?: (name: string) => boolean;
350
- /**
351
- * 是否转义 `wxml` 中的内联 `wxs`。
352
- *
353
- * @group 1.文件匹配
354
- * @experimental 实验性质,有可能会改变
355
- * @remarks
356
- * 使用前同样需要在 `tailwind.config.js` 中声明 `wxs` 格式。
357
- * @example
358
- * ```html
359
- * <!-- index.wxml -->
360
- * <wxs module="inline">
361
- // 我是内联wxs
362
- // 下方的类名会被转义
363
- var className = "after:content-['我是className']"
364
- module.exports = {
365
- className: className
480
+
481
+ declare module '../typedoc.export' {
482
+ interface UserDefinedOptions {
483
+ /**
484
+ * 插件 `apply` 初始调用时触发。
485
+ *
486
+ * @group 2.生命周期
487
+ */
488
+ onLoad?: () => void;
489
+ /**
490
+ * 开始处理前触发。
491
+ *
492
+ * @group 2.生命周期
493
+ */
494
+ onStart?: () => void;
495
+ /**
496
+ * 匹配并修改文件内容前触发。
497
+ *
498
+ * @group 2.生命周期
499
+ */
500
+ /**
501
+ * 匹配并修改文件后触发。
502
+ *
503
+ * @group 2.生命周期
504
+ */
505
+ onUpdate?: (filename: string, oldVal: string, newVal: string) => void;
506
+ /**
507
+ * 结束处理时触发。
508
+ *
509
+ * @group 2.生命周期
510
+ */
511
+ onEnd?: () => void;
366
512
  }
367
- </wxs>
368
- <wxs src="./index.wxs" module="outside"/>
369
- <view><view class="{{inline.className}}"></view><view class="{{outside.className}}"></view></view>
370
- * ```
371
- * @default false
372
- */
373
- inlineWxs?: boolean;
374
513
  }
375
- interface UserDefinedOptions {
376
- /**
377
- * 插件 `apply` 初始调用时触发。
378
- *
379
- * @group 2.生命周期
380
- */
381
- onLoad?: () => void;
382
- /**
383
- * 开始处理前触发。
384
- *
385
- * @group 2.生命周期
386
- */
387
- onStart?: () => void;
388
- /**
389
- * 匹配并修改文件内容前触发。
390
- *
391
- * @group 2.生命周期
392
- */
393
- /**
394
- * 匹配并修改文件后触发。
395
- *
396
- * @group 2.生命周期
397
- */
398
- onUpdate?: (filename: string, oldVal: string, newVal: string) => void;
399
- /**
400
- * 结束处理时触发。
401
- *
402
- * @group 2.生命周期
403
- */
404
- onEnd?: () => void;
514
+
515
+ declare module '../typedoc.export' {
516
+ interface UserDefinedOptions {
517
+ /**
518
+ * 匹配需要处理的 `wxml` 等模板文件。
519
+ *
520
+ * @group 1.文件匹配
521
+ */
522
+ htmlMatcher?: (name: string) => boolean;
523
+ /**
524
+ * 匹配需要处理的 `wxss` 等样式文件。
525
+ *
526
+ * @group 1.文件匹配
527
+ */
528
+ cssMatcher?: (name: string) => boolean;
529
+ /**
530
+ * 匹配需要处理的编译后 `js` 文件。
531
+ *
532
+ * @group 1.文件匹配
533
+ */
534
+ jsMatcher?: (name: string) => boolean;
535
+ /**
536
+ * 匹配负责注入 Tailwind CSS 变量作用域的 CSS Bundle。
537
+ *
538
+ * @group 1.文件匹配
539
+ * @remarks
540
+ * 在处理 `::before`/`::after` 等不兼容选择器时,建议手动指定文件位置。
541
+ */
542
+ mainCssChunkMatcher?: (name: string, appType?: AppType) => boolean;
543
+ /**
544
+ * 匹配各端的 `wxs`/`sjs`/`.filter.js` 文件。
545
+ *
546
+ * @group 1.文件匹配
547
+ * @experimental 实验性质,有可能会改变
548
+ * @remarks
549
+ * 配置前请确保在 `tailwind.config.js` 的 `content` 中包含对应格式。
550
+ * @default ()=>false
551
+ */
552
+ wxsMatcher?: (name: string) => boolean;
553
+ /**
554
+ * 是否转义 `wxml` 中的内联 `wxs`。
555
+ *
556
+ * @group 1.文件匹配
557
+ * @experimental 实验性质,有可能会改变
558
+ * @remarks
559
+ * 使用前同样需要在 `tailwind.config.js` 中声明 `wxs` 格式。
560
+ * @example
561
+ * ```html
562
+ * <!-- index.wxml -->
563
+ * <wxs module="inline">
564
+ // 我是内联wxs
565
+ // 下方的类名会被转义
566
+ var className = "after:content-['我是className']"
567
+ module.exports = {
568
+ className: className
569
+ }
570
+ </wxs>
571
+ <wxs src="./index.wxs" module="outside"/>
572
+ <view><view class="{{inline.className}}"></view><view class="{{outside.className}}"></view></view>
573
+ * ```
574
+ * @default false
575
+ */
576
+ inlineWxs?: boolean;
577
+ }
405
578
  }
579
+
406
580
  interface UserDefinedOptions {
407
- /**
408
- * 控制 Tailwind 自定义长度单位补丁。
409
- *
410
- * @group 3.一般配置
411
- * @see https://github.com/sonofmagic/weapp-tailwindcss/issues/110
412
- * @remarks
413
- * TailwindCSS 3.2.0 起对任意值执行长度单位校验,会将未声明的 `rpx` 识别为颜色。本选项默认开启以注入 `rpx` 支持。当 Node.js 在插件执行前已缓存 `tailwindcss` 模块时,首轮运行可能未生效,可通过在 `postinstall` 中执行 `weapp-tw patch` 提前打补丁。
414
- * ```diff
415
- * "scripts": {
416
- * + "postinstall": "weapp-tw patch"
417
- * }
418
- * ```
419
- */
420
- supportCustomLengthUnitsPatch?: ILengthUnitsPatchOptions | boolean;
421
- /**
422
- * 声明所使用的框架类型。
423
- *
424
- * @group 3.一般配置
425
- * @remarks
426
- * 用于辅助定位主要的 CSS bundle,以便默认的 `mainCssChunkMatcher` 做出更准确的匹配,未传入时将尝试自动猜测变量注入位置。
427
- */
428
- appType?: AppType;
429
- /**
430
- * TailwindCSS 任意值的相关配置。
431
- *
432
- * @group 3.一般配置
433
- */
434
- arbitraryValues?: IArbitraryValues;
435
- /**
436
- * 控制 JS 字面量是否需要保留。
437
- *
438
- * @group 3.一般配置
439
- * @since ^2.6.1
440
- * @remarks
441
- * 当 Tailwind 与 JS 字面量冲突时,可通过回调返回 `true` 保留当前值,返回 `false` 或 `undefined` 则继续转义。默认保留所有带 `*` 的字符串字面量。
442
- */
443
- jsPreserveClass?: (keyword: string) => boolean | undefined;
444
- /**
445
- * 禁用默认的 `wxml` 模板替换器。
446
- *
447
- * @group 3.一般配置
448
- * @since ^2.6.2
449
- * @remarks
450
- * 启用后模板匹配完全交由 [`customAttributes`](/docs/api/interfaces/UserDefinedOptions#customattributes) 管理,需要自行覆盖默认的 `class` / `hover-class` 等匹配规则。
451
- * @default false
452
- */
453
- disabledDefaultTemplateHandler?: boolean;
454
- /**
455
- * 内部使用的运行时加载器路径。
456
- *
457
- * @ignore
458
- * @internal
459
- */
460
- runtimeLoaderPath?: string;
461
- /**
462
- * 内部使用的 CSS import 重写加载器路径。
463
- *
464
- * @ignore
465
- * @internal
466
- */
467
- runtimeCssImportRewriteLoaderPath?: string;
468
- /**
469
- * 指定用于获取 Tailwind 上下文的路径。
470
- *
471
- * @group 3.一般配置
472
- * @since ^2.9.3
473
- * @remarks
474
- * 在 linked 或 monorepo 场景下可手动指向目标项目的 `package.json` 所在目录。
475
- */
476
- tailwindcssBasedir?: string;
477
- /**
478
- * 控制缓存策略。
479
- *
480
- * @group 3.一般配置
481
- * @since ^3.0.11
482
- */
483
- cache?: boolean | ICreateCacheReturnType;
484
- /**
485
- * `@babel/parser` 的配置选项。
486
- *
487
- * @since ^3.2.0
488
- * @group 3.一般配置
489
- */
490
- babelParserOptions?: ParserOptions & {
491
- cache?: boolean;
492
- cacheKey?: string;
493
- };
494
- /**
495
- * 自定义 Tailwind 子组合器的替换值。
496
- *
497
- * @group 3.一般配置
498
- * @remarks
499
- * 为兼容小程序缺乏 `:not([hidden])~` 支持的限制,默认会将 `.space-x-4` 等选择器替换为 `view + view`。可传入字符串或字符串数组以扩展适用标签。
500
- * ```css
501
- * // 数组示例
502
- * .space-y-4>view + view,text + text{}
503
- *
504
- * // 字符串示例
505
- * .space-y-4>view,text,button,input ~ view,text,button,input{}
506
- * ```
507
- * @default 'view + view'
508
- */
509
- cssChildCombinatorReplaceValue?: string | string[];
510
- /**
511
- * `postcss` 的配置选项。
512
- *
513
- * @since ^3.2.0
514
- * @group 3.一般配置
515
- */
516
- postcssOptions?: LoadedPostcssOptions;
517
- /**
518
- * 是否移除 CSS 中的 `:hover` 选择器。
519
- *
520
- * @since ^3.2.1
521
- * @group 3.一般配置
522
- * @see https://github.com/sonofmagic/weapp-tailwindcss/issues/293
523
- * @remarks
524
- * 小程序不支持 `:hover`,需要使用组件的 `hover-class`,因此默认删除相关节点。
525
- * @default `true`
526
- */
527
- cssRemoveHoverPseudoClass?: boolean;
528
- /**
529
- * 是否移除 `@property` 节点。
530
- *
531
- * @since ^4.1.2
532
- * @group 3.一般配置
533
- * @remarks
534
- * 微信小程序可识别 `@property`,但支付宝暂不支持,默认移除以避免构建失败。
535
- * @default `true`
536
- */
537
- cssRemoveProperty?: boolean;
538
- /**
539
- * 自定义 patcher 参数。
540
- *
541
- * @group 3.一般配置
542
- */
543
- tailwindcssPatcherOptions?: TailwindcssPatchOptions;
544
- /**
545
- * 控制命令行日志输出级别。
546
- *
547
- * @group 3.一般配置
548
- * @remarks
549
- * 默认 `info`,可设置为 `silent` 屏蔽全部输出。
550
- */
551
- logLevel?: 'info' | 'warn' | 'error' | 'silent';
552
581
  }
553
582
 
554
583
  type ItemOrItemArray<T> = T | T[];