Skip to content

refactor(postcss): 将 CSS 处理收口到 @weapp-tailwindcss/postcss - #1206

Merged
sonofmagic merged 4 commits into
mainfrom
codex/postcss-css-ownership
Sep 15, 2026
Merged

sonofmagic merged 4 commits into
mainfrom
codex/postcss-css-ownership

Conversation

@sonofmagic

@sonofmagic sonofmagic commented Sep 15, 2026

Copy link
Copy Markdown
Owner

摘要

把 CSS 语法解析、tokenize 和存量 CSS AST 变换收到 @weapp-tailwindcss/postcssweapp-tailwindcss 不再直接依赖 postcss-scss@csstools/css-tokenizer 和未使用的 lightningcss

变更

  • 新增 packages/postcss/src/syntax/parseCssImportSpecifierquoteCssImportSpecifierparseScssSourceparseUniAppXStyleSource
  • parseTailwindCssDirectiveRequest 改为 tokenizer 实现
  • 迁出 uni-app x 边框 preflight、v4 theme source 清理、legacy selector/unit、@apply 清理、空块扫描、Harmony CSS style value
  • 根规则与包级 AGENTS 写明样式处理所有权
  • test/ci/architecture-contract.test.ts 禁止主包再引入 CSS 处理库
  • 主包只保留 Vue/SFC 注入、Vite marker 去重、@reference 路径解析和生成编排

验证

  • pnpm --filter @weapp-tailwindcss/postcss test
  • pnpm --filter weapp-tailwindcss exec vitest run test/ci/architecture-contract.test.ts test/tailwindcss/v4-import-paths.test.ts test/core.test.ts test/uni-app-x test/postcss test/bundlers/css-imports.test.ts test/bundlers/shared/generator-css/legacy-selectors.test.ts test/bundlers/shared/generator-css/legacy-compat.test.ts test/bundlers/final-css-cleanup.unit.test.ts test/tailwindcss/v4-engine.test.ts
  • pnpm --filter @weapp-tailwindcss/postcss build
  • pnpm agents:check

主包不再直接依赖 postcss-scss、@csstools/css-tokenizer 和 lightningcss,
相关 API 与仓库约束一并落到 postcss 包。
@github-actions

github-actions Bot commented Sep 15, 2026

Copy link
Copy Markdown
Contributor

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

  • Commit:7ba4438cedd9
  • 生成时间:2026-09-15T10:36:36.781Z
  • Benchmark:success
  • Watch:未触发/无产物

总览

指标 结果
Build 稳态中位数平均变化 -0.21%
HMR 稳态 P95 平均变化 -0.85%
插件 Build 中位数平均变化 -1.55%
插件 HMR 门禁统计平均变化 -1.43%
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 16423.79 / 16911.74 16629.06 / 16470.12 -1.86% 5534.15 / 6477.40 5696.77 / 6375.36 -1.58% ok
demo-taro-vite-react-tailwindcss-v4__mp-weixin mp-weixin 31093.61 / 30812.65 31322.15 / 31067.86 +0.36% 5972.32 / 6334.04 6294.84 / 6571.19 +3.74% ok
demo-taro-webpack-react-tailwindcss-v4__mp-weixin mp-weixin 23722.20 / 23497.95 23470.85 / 23107.44 -1.62% 3885.15 / 9217.84 3845.76 / 9055.29 -1.76% ok
demo-uni-app-vite-tailwindcss-v4__mp-weixin mp-weixin 8345.88 / 8232.85 8264.67 / 8192.41 -0.46% 1061.02 / 2997.88 1067.16 / 2972.51 -0.85% ok
demo-weapp-vite-tailwindcss-v4__mp-weixin mp-weixin 4458.18 / 4565.08 4664.34 / 4627.39 +2.52% 7484.64 / 7773.64 7478.87 / 7479.47 -3.78% ok

Benchmark 插件处理阶段

项目 Build Plugin base/current(ms) 变化 HMR Plugin base/current(ms) 变化
demo-mpx-tailwindcss-v4__mp-weixin 1620.00 / 1574.00 -2.84% 1564.00 / 1518.00 -2.94%
demo-taro-vite-react-tailwindcss-v4__mp-weixin 6474.00 / 6392.00 -1.27% 3249.00 / 3290.00 +1.26%
demo-taro-webpack-react-tailwindcss-v4__mp-weixin 7378.00 / 7291.00 -1.18% 6480.00 / 6312.00 -2.59%
demo-uni-app-vite-tailwindcss-v4__mp-weixin 2760.00 / 2735.00 -0.91% 975.00 / 961.00 -1.44%
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 1227.62 / 1148.76 1219.68 / 1144.27 -0.65% 2142.52 / 2007.88 2136.46 / 2001.16 -0.28%
demo-taro-vite-react-tailwindcss-v4__mp-weixin 1722.65 / 1541.20 1607.02 / 1532.89 -6.71% 3052.99 / 3003.11 2983.73 / 2940.99 -2.27%
demo-taro-webpack-react-tailwindcss-v4__mp-weixin 1497.50 / 1289.35 1464.25 / 1256.14 -2.22% 1938.87 / 1831.26 1842.78 / 1769.49 -4.96%
demo-uni-app-vite-tailwindcss-v4__mp-weixin 758.89 / 758.89 761.63 / 760.35 +0.36% 1050.58 / 961.93 1039.59 / 962.23 -1.05%
demo-weapp-vite-tailwindcss-v4__mp-weixin 579.43 / 509.13 588.08 / 564.15 +1.49% 1466.80 / 1440.83 1373.07 / 1309.18 -6.39%

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。

把 hoist/create border preflight 和 preflight import / vendor keyframes
清理从主包挪到 @weapp-tailwindcss/postcss,主包只保留模板注入与生成编排。
把 selector/unit 兼容、@apply 清理、空 CSS 块扫描以及 class style value
编译从主包挪到 @weapp-tailwindcss/postcss。Vite marker 去重仍留在主包。
@sonofmagic sonofmagic changed the title refactor(postcss): 将 CSS 语法解析收口到 @weapp-tailwindcss/postcss refactor(postcss): 将 CSS 处理收口到 @weapp-tailwindcss/postcss Sep 15, 2026
uni-app Vite 构建在大量无 escape 的 @import 上不必每次走 tokenizer。
复杂输入(注释、escape、残缺引号)仍回退到 @csstools/css-tokenizer。
@sonofmagic
sonofmagic merged commit abd00dc into main Sep 15, 2026
216 checks passed
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