Releases: sonofmagic/weapp-tailwindcss
weapp-tailwindcss@4.12.0
Minor Changes
-
✨ 优化 JS Handler 结果缓存策略,提升 HMR 和 Bundler 场景下的缓存命中率。
790bc9fby @sonofmagic- 将缓存淘汰策略从 FIFO 替换为 LRU(复用已有
lru-cache依赖),缓存上限从 256 提升到 512,确保高频访问的文件不被低频文件驱逐。 - 使用内容哈希(MD5)替代原始源码字符串作为缓存键,移除 512 字符的源码长度限制,大文件也能被缓存。
- 移除 Bundler 路径(含
filename/moduleGraph)的缓存排除逻辑,Webpack/Vite/Gulp 调用也能命中结果缓存。 - 新增选项指纹(Options Fingerprint)机制,将影响转译结果的 16 个字段序列化为唯一标识符,确保不同配置下的缓存正确隔离。
- 简化选项解析缓存从 4 层 WeakMap 嵌套到 2 层结构,保持引用稳定性。
- 含
linked(跨文件分析)或error(解析失败)的结果不缓存,确保数据一致性。
- 将缓存淘汰策略从 FIFO 替换为 LRU(复用已有
-
✨ 将 JS 快速预检查机制扩展到所有构建器路径(Webpack v5、Webpack v4、Gulp、核心 API)。
ac76d03by @sonofmagic- 新增共享预检查模块
src/js/precheck.ts,通过正则快速判断 JS 文件是否需要转译,跳过不必要的 Babel AST 解析。 - 原 Vite 专属的
shouldSkipViteJsTransform改为从共享模块 re-export,保持向后兼容。 - Webpack v5 的
processAssets钩子、Webpack v4 的emit钩子、Gulp 的transformJs流、核心createContext().transformJs()均已集成预检查。 - 新增环境变量
WEAPP_TW_DISABLE_JS_PRECHECK,设置为'1'时可禁用预检查,强制所有文件走完整转译流程。 - 预检查开销极低:211KB 大文件仅需 ~171μs,小文件 <1μs,对需要转译的文件无性能影响。
- 新增共享预检查模块
Patch Changes
-
🐛 修复
uni-app x的uvue/nvue样式目标会输出宿主不支持 CSS 的问题。a835a94by @sonofmagic- 在
uvue目标下过滤非 class selector,避免继续输出space-x-*、space-y-*这类组合器选择器。 - 在
uvue目标下过滤不兼容声明,例如display: block、display: inline-flex、display: grid、grid-template-columns、gap、min-height: 100vh。 - 新增
uniAppX.uvueUnsupported配置,支持error | warn | silent,默认warn。 - 当策略为
warn时,跳过不兼容 utility 并输出包含 class 名与来源文件的警告,避免 HBuilderX 因非法 CSS 直接报错。
- 在
-
🐛 移除 Tailwind CSS v4
bg-linear-to-*生成的 lab 渐变@supports检测块,避免小程序端保留无效的linear-gradient(in lab, red, red)兼容分支。dc9791cby @sonofmagic- 保留基础
--tw-gradient-position与background-image: linear-gradient(var(--tw-gradient-stops))产物,并补充bg-linear-to-r单测与 Taro Vite v4 端到端回归。
- 保留基础
-
🐛 新增
weapp-tailwindcss doctor诊断命令,用于检查项目根目录、Node.js 版本、包管理器、Tailwind CSS、PostCSS、常见小程序框架和构建器配置,并支持--json与--strict输出模式。b67c6d9by @sonofmagic -
🐛 统一 CLI 与
doctor诊断命令的 Node.js 版本判断,按文档和包声明使用^20.19.0 || >=22.12.0范围,避免较低的 Node.js 22 版本被误判为可用。41160e3by @sonofmagic -
🐛 调整
postinstall补丁脚本:安装阶段遇到运行时模块缺失时不再中断pnpm install,并保留cli:patch作为严格校验入口。81dfa54by @sonofmagic- 同时将包内测试脚本改为使用
pnpm run cli:patch,避免继续通过npm run postinstall复用安装生命周期。
- 同时将包内测试脚本改为使用
-
🐛 修复 Windows 环境下 watch HMR 回归场景的稳定性问题。
d9bda5aby @sonofmagic- 放宽 Windows E2E Watch 的热更新耗时阈值,避免完整矩阵在 Windows runner 上因正常波动误判失败。
- 扩大 fresh mutation class 的候选生成空间,避免历史 watch class 累积后无法生成新 class。
- 恢复 Windows nightly 完整场景的默认重试能力,降低 runner 抖动对 E2E Watch 的影响。
-
🐛 在 Tailwind CSS v4 场景下默认启用内置 autoprefixer 后处理,为小程序 CSS 补齐
-webkit-background-clip: text等 WebView 兼容前缀,并新增autoprefixer: false配置用于显式关闭。501a5c2by @sonofmagic -
📦 Dependencies
a835a94
→@weapp-tailwindcss/postcss@2.2.0,@weapp-tailwindcss/reset@0.1.0
theme-transition@2.0.2
Patch Changes
- 🐛 将反向 clip-path 关键帧生成逻辑从
Array.prototype.toReversed改为兼容性更高的数组复制后反转写法,避免在较低lib目标的 TypeScript 检查中报错。ebbbe84by @sonofmagic
@weapp-tailwindcss/variants@0.2.2
Patch Changes
- 📦 Dependencies
acc3907
→@weapp-tailwindcss/merge@2.2.0
@weapp-tailwindcss/variants-v3@0.1.2
Patch Changes
- 📦 Dependencies
acc3907
→@weapp-tailwindcss/merge-v3@0.2.0
@weapp-tailwindcss/ui@0.0.8
Patch Changes
- 📦 Dependencies
acc3907
→@weapp-tailwindcss/merge@2.2.0,@weapp-tailwindcss/variants@0.2.2
@weapp-tailwindcss/reset@0.1.0
Minor Changes
- ✨ 新增
@weapp-tailwindcss/reset静态样式资源包,提供可直接导入的跨端 reset CSS。9db8b06by @sonofmagic- 支持
uni-app与taro两套目录结构,导入路径保持一致。 - 提供
button-after.css、normalize.css、modern-normalize.css、eric-meyer.css、sanitize/*、tailwind.css、tailwind-compat.css。 - 新增独立 README、包级测试与官网文档入口,便于和
weapp-tailwindcss/reset插件能力区分使用。
- 支持
@weapp-tailwindcss/postcss@2.2.0
Minor Changes
-
✨ 新增 CSS 处理结果 LRU 缓存,对相同内容和配置的 CSS 直接返回缓存结果,跳过 PostCSS 处理流程。
e6d7e8cby @sonofmagic- 在
createStyleHandler内部新增基于 LRU 的结果缓存(最大 256 条目),缓存键由选项指纹 + 内容探测信号 + 内容哈希组成。 - 使用 FNV-1a 哈希算法计算内容哈希,开销极低(不依赖 crypto 模块)。
- HMR 场景下相同 CSS 文件的重复处理直接命中缓存,端到端处理速度提升 18~55 倍。
- 在
-
✨ 新增 PostCSS 流水线按需裁剪能力,通过轻量级 CSS 内容探测自动跳过不必要的插件。
9a4a836by @sonofmagic- 新增
content-probe模块,使用正则/字符串匹配快速探测 CSS 内容特征(现代颜色函数、preset-env 特征等)。 createStylePipeline支持可选的FeatureSignal参数,根据信号按需跳过postcss-preset-env和color-functional-fallback插件。StyleProcessorCache将特征信号纳入缓存键计算,确保不同内容特征组合使用正确的处理器。createStyleHandler自动执行内容探测并传递信号,对外 API 签名不变,零配置即可获得优化。- 探测策略采用宽松匹配:宁可误报(多加载插件),不可漏报(遗漏需要的插件),确保处理结果等价。
- 新增
Patch Changes
-
🐛 修复
uni-app x的uvue/nvue样式目标会输出宿主不支持 CSS 的问题。a835a94by @sonofmagic- 在
uvue目标下过滤非 class selector,避免继续输出space-x-*、space-y-*这类组合器选择器。 - 在
uvue目标下过滤不兼容声明,例如display: block、display: inline-flex、display: grid、grid-template-columns、gap、min-height: 100vh。 - 新增
uniAppX.uvueUnsupported配置,支持error | warn | silent,默认warn。 - 当策略为
warn时,跳过不兼容 utility 并输出包含 class 名与来源文件的警告,避免 HBuilderX 因非法 CSS 直接报错。
- 在
-
🐛 移除 Tailwind CSS v4
bg-linear-to-*生成的 lab 渐变@supports检测块,避免小程序端保留无效的linear-gradient(in lab, red, red)兼容分支。dc9791cby @sonofmagic- 保留基础
--tw-gradient-position与background-image: linear-gradient(var(--tw-gradient-stops))产物,并补充bg-linear-to-r单测与 Taro Vite v4 端到端回归。
- 保留基础
-
🐛 将
unitsToPx转换链路切换为基于postcss-rule-unit-converter的规则转换实现,移除对postcss-units-to-px的直接运行时依赖。8d4131fby @sonofmagic- 保留
unitMap、transform、transform: false、propList、selectorBlackList等兼容配置行为,并补充对应回归测试,确保多单位转px的默认输出不变。
- 保留
-
🐛 在 Tailwind CSS v4 场景下默认启用内置 autoprefixer 后处理,为小程序 CSS 补齐
-webkit-background-clip: text等 WebView 兼容前缀,并新增autoprefixer: false配置用于显式关闭。501a5c2by @sonofmagic
@weapp-tailwindcss/merge@2.2.0
Minor Changes
- ✨ 新增
/slim和/lite子路径入口,优化小程序场景下 tailwind-merge 的包体积。acc3907by @sonofmagic/slim:内置精简版冲突分组配置,覆盖小程序常用的布局、Flexbox、Grid、间距、尺寸、排版、背景、边框、效果、变换等类别,开箱即用,体积约 20-23KB。/lite:不包含任何默认配置,仅导出createTailwindMerge、twJoin、mergeConfigs等工厂函数,用户自行提供配置,体积最小(<1KB + tailwind-merge 核心算法)。- 现有默认入口(
.)行为完全不变,向后兼容。
@weapp-tailwindcss/merge-v3@0.2.0
Minor Changes
- ✨ 新增
/slim和/lite子路径入口,优化小程序场景下 tailwind-merge 的包体积。acc3907by @sonofmagic/slim:内置精简版冲突分组配置,覆盖小程序常用的布局、Flexbox、Grid、间距、尺寸、排版、背景、边框、效果、变换等类别,开箱即用,体积约 20-23KB。/lite:不包含任何默认配置,仅导出createTailwindMerge、twJoin、mergeConfigs等工厂函数,用户自行提供配置,体积最小(<1KB + tailwind-merge 核心算法)。- 现有默认入口(
.)行为完全不变,向后兼容。
weapp-tailwindcss@4.12.0-alpha.3
Patch Changes
- 🐛 修复 Windows 环境下 watch HMR 回归场景的稳定性问题。
d9bda5aby @sonofmagic- 放宽 Windows E2E Watch 的热更新耗时阈值,避免完整矩阵在 Windows runner 上因正常波动误判失败。
- 扩大 fresh mutation class 的候选生成空间,避免历史 watch class 累积后无法生成新 class。
- 恢复 Windows nightly 完整场景的默认重试能力,降低 runner 抖动对 E2E Watch 的影响。