Skip to content

feat(engine): 迁入 Tailwind CSS 4 引擎并替换旧依赖 - #1218

Open
sonofmagic wants to merge 1 commit into
mainfrom
codex/migrate-v4-engine
Open

sonofmagic wants to merge 1 commit into
mainfrom
codex/migrate-v4-engine

Conversation

@sonofmagic

Copy link
Copy Markdown
Owner

主包、PostCSS 和 CLI 原先直接依赖 @tailwindcss-mangle/engine。本 PR 将所需能力迁入本仓库的 @weapp-tailwindcss/engine@0.1.0,仅保留 Tailwind CSS 4,并将三个消费包全部切换为 workspace 依赖。

实现

  • 以旧 engine 0.2.0 对应上游提交 6bf58cebe073a06dfeac7ed44f55ecff50deb763 为基线,保留 MIT 版权与来源;保留候选提取、位置报告、源码扫描、design system、增量生成会话及裸任意值能力。
  • 包根与 /v4 提供 ESM/CJS 和类型声明,删除 v3、自定义生成器、多版本分发与 HTML parser 兼容导出;Tailwind Node/Oxide 保持动态加载。
  • Tailwind CSS 入口通过 engine 的模块上下文解析,补充 workspace/pnpm 安装布局与 POSIX/Windows 路径回归。
  • 明确 engine 的生成专用 CSS 处理边界,平台兼容转换仍归 PostCSS;补充架构契约、规则索引和中文 change intent。
  • 测试、demo、示例继续使用 npm 版 tailwindcss-patch,允许保留它引入的旧 engine 间接依赖;未执行 npm 发布。

本地验证

  • engine:12 个测试文件、143 项通过;PostCSS 定向 53 项、CLI 57 项通过。主包 Tailwind、扫描、JS 转译、插件兼容及架构/依赖契约回归通过。
  • engine 与三个消费包的依赖链构建通过;engine 和主包严格类型检查、变更源码 lint、pnpm agents:checkgit diff --check 通过。
  • 四个包的 tarball manifest、exports、类型文件与旧依赖引用检查通过;解包后 ESM/CJS 加载及真实 v4 生成通过,engine 的 .mts/.cts 消费方类型检查通过。
  • frozen-lockfile 离线安装及 pnpm release status 通过。

已知限制

  • PostCSS 严格类型检查有 75 条、CLI 有 14 条既有错误。与基线运行相同命令逐行比较,错误内容与数量完全一致,本次没有新增或放宽检查。
  • 主包原有 7 个跳过用例维持原状;未执行全仓、多端设备/IDE 或 Windows/Linux 实机验收。
  • 未改动 demo、issue 复现页或既有输出快照,无需重建对应 static 基线。

详细命令与结果见 迁移验证记录

@github-actions

github-actions Bot commented Sep 18, 2026

Copy link
Copy Markdown
Contributor

PR 性能基准报告:部分结果

  • Commit:4f0f5b8e9ac0
  • 生成时间:2026-09-18T13:03:49.265Z
  • Benchmark:success
  • Watch:未触发/无产物

总览

指标 结果
Build 稳态中位数平均变化 -0.58%
HMR 稳态 P95 平均变化 +1.69%
插件 Build 中位数平均变化 +1.03%
插件 HMR 门禁统计平均变化 +2.72%
Watch HMR p50 / p95 N/A / N/A ms
Watch RSS 峰值 / 最大增量 0.00 / 0.00 MB
Watch Heap 峰值 0.00 MB

Benchmark 项目矩阵

项目 平台 Base Build 冷/稳态(ms) Current Build 冷/稳态(ms) Build 变化 Base HMR median/P95(ms) Current HMR median/P95(ms) HMR 变化 状态
demo-mpx-tailwindcss-v4__mp-weixin mp-weixin 16154.15 / 15986.17 15886.07 / 15850.19 -1.04% 5306.77 / 6127.31 5871.62 / 6408.77 +4.59% ok
demo-taro-vite-react-tailwindcss-v4__mp-weixin mp-weixin 25105.28 / 24851.81 25514.06 / 24738.51 -1.04% 5903.42 / 6136.42 5682.06 / 6253.11 +1.90% ok
demo-taro-webpack-react-tailwindcss-v4__mp-weixin mp-weixin 27803.07 / 28011.24 28193.14 / 28209.48 +1.20% 4692.69 / 10756.36 4724.24 / 10892.36 +1.26% ok
demo-uni-app-vite-tailwindcss-v4__mp-weixin mp-weixin 4861.80 / 4830.83 4812.34 / 4783.39 -1.31% 590.99 / 2091.04 590.19 / 2088.28 -0.13% ok
demo-weapp-vite-tailwindcss-v4__mp-weixin mp-weixin 5968.60 / 5969.49 5920.64 / 5933.65 -0.71% 8167.70 / 8200.92 8222.62 / 8267.26 +0.81% ok

Benchmark 插件处理阶段

项目 Build Plugin base/current(ms) 变化 HMR Plugin base/current(ms) 变化
demo-mpx-tailwindcss-v4__mp-weixin 1512.00 / 1526.00 +0.93% 1549.00 / 1626.00 +4.97%
demo-taro-vite-react-tailwindcss-v4__mp-weixin 5151.00 / 5129.00 -0.43% 3144.00 / 3283.00 +4.42%
demo-taro-webpack-react-tailwindcss-v4__mp-weixin 8519.00 / 8835.00 +3.71% 7496.00 / 7637.00 +1.88%
demo-uni-app-vite-tailwindcss-v4__mp-weixin 1384.00 / 1383.00 -0.07% 527.00 / 525.00 -0.38%
demo-weapp-vite-tailwindcss-v4__mp-weixin N/A / N/A N/A N/A / N/A N/A

Benchmark 内存

项目 Build RSS base peak/steady(MB) Build RSS current peak/steady(MB) Peak 变化 HMR RSS base peak/steady(MB) HMR RSS current peak/steady(MB) Peak 变化
demo-mpx-tailwindcss-v4__mp-weixin 1228.52 / 1152.86 1227.10 / 1152.40 -0.12% 2136.47 / 2013.75 2137.59 / 2011.98 +0.05%
demo-taro-vite-react-tailwindcss-v4__mp-weixin 1715.73 / 1547.37 1640.20 / 1554.49 -4.40% 3055.58 / 3011.20 3057.45 / 3023.43 +0.06%
demo-taro-webpack-react-tailwindcss-v4__mp-weixin 1470.81 / 1276.27 1310.35 / 1279.63 -10.91% 1831.61 / 1741.57 1785.55 / 1724.66 -2.51%
demo-uni-app-vite-tailwindcss-v4__mp-weixin 759.88 / 759.88 756.92 / 756.92 -0.39% 1029.16 / 948.88 1049.03 / 973.90 +1.93%
demo-weapp-vite-tailwindcss-v4__mp-weixin 569.31 / 531.46 578.02 / 528.58 +1.53% 1548.95 / 1450.22 1402.55 / 1316.57 -9.45%

Watch 明细

项目 平台 变更类型 样本数 ready(ms) avg/p50/p95/max(ms) 插件 p50/p95(ms) RSS peak/delta(MB) Heap peak(MB)

门禁与诊断

  • Benchmark 性能门禁:通过
  • Benchmark 缺失项目:无
  • Benchmark 错误:0
  • Watch 解析错误:0

运行链接

统计口径
  • Build/HMR 版本对照沿用现有 benchmark 的 base/current 和门禁统计。
  • Watch 仅报告当前提交的真实跨平台 watcher 结果,不额外运行 base;跨 shard 总览分位数按各报告摘要聚合,项目/平台行保留原始口径。
  • 未触发或缺失的场景显示为 N/A,不当作 0。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant