Releases: sonofmagic/weapp-tailwindcss
weapp-tailwindcss@4.12.0-next.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 场景下默认启用内置 autoprefixer 后处理,为小程序 CSS 补齐
-webkit-background-clip: text等 WebView 兼容前缀,并新增autoprefixer: false配置用于显式关闭。501a5c2by @sonofmagic -
📦 Dependencies
a835a94
→@weapp-tailwindcss/postcss@2.2.0-next.0,@weapp-tailwindcss/reset@0.1.0-next.0
@weapp-tailwindcss/variants@0.2.2-next.0
Patch Changes
- 📦 Dependencies
acc3907
→@weapp-tailwindcss/merge@2.2.0-next.0
@weapp-tailwindcss/variants-v3@0.1.2-next.0
Patch Changes
- 📦 Dependencies
acc3907
→@weapp-tailwindcss/merge-v3@0.2.0-next.0
@weapp-tailwindcss/ui@0.0.8-next.0
Patch Changes
- 📦 Dependencies
acc3907
→@weapp-tailwindcss/merge@2.2.0-next.0,@weapp-tailwindcss/variants@0.2.2-next.0
@weapp-tailwindcss/reset@0.1.0-next.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-next.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 场景下默认启用内置 autoprefixer 后处理,为小程序 CSS 补齐
-webkit-background-clip: text等 WebView 兼容前缀,并新增autoprefixer: false配置用于显式关闭。501a5c2by @sonofmagic
@weapp-tailwindcss/merge@2.2.0-next.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-next.0
Minor Changes
- ✨ 新增
/slim和/lite子路径入口,优化小程序场景下 tailwind-merge 的包体积。acc3907by @sonofmagic/slim:内置精简版冲突分组配置,覆盖小程序常用的布局、Flexbox、Grid、间距、尺寸、排版、背景、边框、效果、变换等类别,开箱即用,体积约 20-23KB。/lite:不包含任何默认配置,仅导出createTailwindMerge、twJoin、mergeConfigs等工厂函数,用户自行提供配置,体积最小(<1KB + tailwind-merge 核心算法)。- 现有默认入口(
.)行为完全不变,向后兼容。
weapp-tailwindcss@4.11.2
Patch Changes
-
🐛 修复
weapp-vite dev启动时weapp-tailwindcss运行时 Tailwind CSS 日志重复输出的问题。5264907by @sonofmagic- 现在同一进程内针对相同 Tailwind CSS 目标与版本的运行时日志会自动去重,仅输出一次,同时保留 CLI 场景的目标路径日志不变。
-
🐛 精简运行时 Tailwind CSS 绑定日志,避免输出冗长的依赖绝对路径。
d2586faby @sonofmagic- 现在运行时会输出
Weapp-tailwindcss 使用 Tailwind CSS (vX.Y.Z),同时保留 CLIweapp-tw patch场景的详细目标路径日志,便于排查补丁绑定目标。
- 现在运行时会输出
weapp-tailwindcss@4.11.1
Patch Changes
-
🐛 修复 taro weapp 场景下
app-origin.wxss仍可能残留:not(#n)占位选择器的问题,并补充#834的回归测试,确保最终输出不再包含@layer、:not(#\\#)与:not(#n)。7942ef4by @sonofmagic -
🐛 修复 Taro Vite Tailwind CSS v4 构建时最终样式产物仍残留
:not(#\#)/:not(#n)的问题。f972c34by @sonofmagic- 同时为 Taro demo 的构建守卫增加对
@tarojs/plugin-doctor原生检查的安全绕过,避免当前环境下其 Rust 模块 panic 导致 demo 无法完成真实构建验证。
- 同时为 Taro demo 的构建守卫增加对
-
📦 Dependencies
7942ef4
→@weapp-tailwindcss/postcss@2.1.7