执行 ROADMAP 的 S1-P2(npm 分发)与 S1-P3(CI 回归)。
P3 · CI 回归流水线
- .github/workflows/regression.yml:push/PR 自动跑回归,失败阻断
含 playwright 浏览器缓存、零依赖自检、服务就绪轮询、报告上传、
GitHub Step Summary 输出
- tools/run-regression.mjs 重构:
· 路径基于脚本位置(不再依赖 cwd,CI 更稳)
· 环境自检:服务未起退出码 2、playwright 缺失退出码 2
· 断言超时后重试一次(吸取 _collect.html 的偶发教训)
· 超时与断言失败分开统计(timedOut 字段)
· 失败时打印明细并 exit 1,全部通过 exit 0
P2 · npm 分发
- package.json:aurora-admin-design,dependencies 为空(零运行时依赖铁律)
playwright 放 devDependencies(CI 专用)
- tools/build-dist.mjs:零依赖构建脚本,产出 dist/
tokens/{tokens.css,tokens.json(DTCG),figma.json}
components/{<slug>.css ×79, index.css 聚合, <slug>.html ×79}
manifest.json(含 SHA 校验和) + README.md
- .npmignore / .gitignore 更新(dist/ node_modules/ 不入库)
- npm pack 实测:115.9 KB 压缩 / 566 KB 解压 / 167 文件 / 无 site|tests 泄漏
实测发现的三个缺陷(全部修复)
1. package.json 加 "type": "module" 会让 site/dev-server.js(CJS)崩溃
—— 移除该字段,靠 .mjs 扩展名区分模块系统
2. dist 里 HTML 引用 ../tokens/colors_and_type.css 但产物是 tokens.css
—— 路径对但文件不存在,产物是坏的。重写全部引用规则
(含 index.css 的 @import 从 ./tokens/ 改为 ../tokens/)
3. 断言总数不确定:icon-contrast 是条件性推入(依赖渲染时机),
导致同一页不同次运行总数不同(960 vs 961)
—— 改为恒定输出一条(无问题=pass,有问题=skip),
断言数从 960 稳定为 1038,连跑两次完全一致
4. 顺带修 na 与 skip 重复计算(na = total - denom,但 skip 已是同一批)
—— 统一为 na = skip,算术自洽:pass+fail+skip = total
验证
- runner:passRate 100% | 79 页全通过 | 1003/1003 | N/A 35 | exit 0
- collector:完全同口径(total 1038 / pass 1003 / fail 0 / skip 35)
- dist:79/79 页面浏览器实测正常(令牌解析、无加载失败)
- 连跑两次数字完全一致(可复现)
1 line
6.7 KiB
JSON
1 line
6.7 KiB
JSON
{"$schema":"https://schemas.design-tokens.org/draft/dtcg.json","$metadata":{"name":"Aurora Admin","version":"1.4.1","brand":"#2F54EB","generated":"2026-09-11 23:13"},"tokens":{"color":{"au-color-brand":{"$value":"#2F54EB","$type":"color","$description":"品牌主色:主按钮、选中态、链接"},"au-color-brand-hover":{"$value":"#1D39C4","$type":"color","$description":"品牌主色悬停"},"au-color-brand-active":{"$value":"#10239E","$type":"color","$description":"品牌主色点击"},"au-color-brand-bg":{"$value":"#F0F5FF","$type":"color","$description":"品牌浅色背景:选中背景、标签背景、表格悬停"},"au-color-secondary":{"$value":"#13C2C2","$type":"color","$description":"辅助色"},"au-color-page-bg":{"$value":"#F5F7FA","$type":"color","$description":"页面背景"},"au-color-card-bg":{"$value":"#FFFFFF","$type":"color","$description":"卡片背景"},"au-color-table-header-bg":{"$value":"#FAFAFA","$type":"color","$description":"表头背景"},"au-color-disabled-bg":{"$value":"#F5F5F5","$type":"color","$description":"禁用背景(按钮禁用态)"},"au-color-tag-green-bg":{"$value":"#F6FFED","$type":"color","$description":"标签绿底"},"au-color-tooltip-bg":{"$value":"#1F2329","$type":"color","$description":"Tooltip 深色背景"},"au-color-text-title":{"$value":"#1F2329","$type":"color","$description":"标题文字 · 15.4:1"},"au-color-text-body":{"$value":"#262626","$type":"color","$description":"正文文字 · 14.0:1"},"au-color-text-secondary":{"$value":"#6E6E6E","$type":"color","$description":"次要文字 · 5.10:1(原 #8C8C8C 仅 3.36:1)"},"au-color-text-tertiary":{"$value":"#595959","$type":"color","$description":"三级文字/描述 · 7.00:1(规范未定义,实现补齐)"},"au-color-text-placeholder":{"$value":"#767676","$type":"color","$description":"占位文字 · 4.54:1(原 #BFBFBF 仅 1.84:1)"},"au-color-text-inverse":{"$value":"#FFFFFF","$type":"color","$description":"反色文字(品牌色背景上的白字)"},"au-color-text-disabled":{"$value":"#BFBFBF","$type":"color","$description":"禁用态文字 · WCAG 1.4.3 对禁用控件豁免(规范定义于组件1/2.txt)"},"au-color-border":{"$value":"#E8ECF1","$type":"color","$description":"分割线/边框"},"au-color-border-strong":{"$value":"#F0F0F0","$type":"color","$description":"更强的实线边框(规范未定义,实现补齐)"},"au-color-icon-inactive":{"$value":"#8F8F8F","$type":"color"},"au-color-success":{"$value":"#2E7D0A","$type":"color","$description":"成功色 · 5.18:1(原 #52C41A 仅 2.27:1)"},"au-color-warning":{"$value":"#8C5A00","$type":"color","$description":"警告色 · 5.87:1(原 #FAAD14 仅 1.90:1)"},"au-color-error":{"$value":"#CF1322","$type":"color","$description":"错误色 · 5.57:1(原 #F5222D 仅 4.08:1)"},"au-color-info":{"$value":"#096DD9","$type":"color","$description":"信息色 · 5.00:1(原 #1890FF 仅 3.24:1)"},"au-color-mask":{"$value":"rgba(0, 0, 0, 0.45)","$type":"color","$description":"弹窗遮罩"},"au-color-mask-strong":{"$value":"rgba(0, 0, 0, 0.85)","$type":"color","$description":"图片遮罩"},"au-color-focus-ring":{"$value":"rgba(47, 84, 235, 0.2)","$type":"color","$description":"输入框聚焦外发光"}},"typography":{"au-font-family":{"$value":"\"PingFang SC\", \"Source Han Sans SC\", \"Source Han Sans\", \"Microsoft YaHei\", \"Inter\", \"DIN\", -apple-system, \"Segoe UI\", sans-serif","$type":"fontFamily"},"au-font-family-cn":{"$value":"\"PingFang SC\", \"Source Han Sans SC\", \"Source Han Sans\", \"Microsoft YaHei\", sans-serif","$type":"fontFamily"},"au-font-family-num":{"$value":"\"Inter\", \"DIN\", \"Segoe UI\", sans-serif","$type":"fontFamily"},"au-type-display-size":{"$value":"24px","$type":"fontFamily"},"au-type-display-height":{"$value":"32px","$type":"fontFamily"},"au-type-display-weight":{"$value":"600","$type":"fontFamily","$description":"Semibold:页面大标题"},"au-type-h1-size":{"$value":"20px","$type":"fontFamily"},"au-type-h1-height":{"$value":"28px","$type":"fontFamily"},"au-type-h1-weight":{"$value":"600","$type":"fontFamily","$description":"Semibold:卡片标题、弹窗标题"},"au-type-h2-size":{"$value":"16px","$type":"fontFamily"},"au-type-h2-height":{"$value":"24px","$type":"fontFamily"},"au-type-h2-weight":{"$value":"500","$type":"fontFamily","$description":"Medium:区块标题"},"au-type-body-size":{"$value":"14px","$type":"fontFamily"},"au-type-body-height":{"$value":"22px","$type":"fontFamily"},"au-type-body-weight":{"$value":"400","$type":"fontFamily","$description":"Regular:正文、表格、表单"},"au-type-caption-size":{"$value":"12px","$type":"fontFamily"},"au-type-caption-height":{"$value":"20px","$type":"fontFamily"},"au-type-caption-weight":{"$value":"400","$type":"fontFamily","$description":"Regular:辅助说明、时间戳"}},"spacing":{"au-space-4":{"$value":"4px","$type":"dimension"},"au-space-8":{"$value":"8px","$type":"dimension"},"au-space-12":{"$value":"12px","$type":"dimension"},"au-space-16":{"$value":"16px","$type":"dimension"},"au-space-20":{"$value":"20px","$type":"dimension"},"au-space-24":{"$value":"24px","$type":"dimension"},"au-space-32":{"$value":"32px","$type":"dimension"},"au-space-40":{"$value":"40px","$type":"dimension"},"au-space-48":{"$value":"48px","$type":"dimension"},"au-space-64":{"$value":"64px","$type":"dimension"}},"radius":{"au-radius-small":{"$value":"2px","$type":"dimension","$description":"标签、徽章、复选框"},"au-radius-base":{"$value":"4px","$type":"dimension","$description":"按钮、输入框、选择器"},"au-radius-medium":{"$value":"6px","$type":"dimension","$description":"表格、卡片内部元素、Popover、日期面板"},"au-radius-large":{"$value":"8px","$type":"dimension","$description":"卡片、弹窗、抽屉"}},"shadow":{"au-shadow-low":{"$value":"0 1px 4px rgba(0, 0, 0, 0.06)","$type":"shadow","$description":"卡片默认"},"au-shadow-medium":{"$value":"0 4px 12px rgba(0, 0, 0, 0.08)","$type":"shadow","$description":"卡片悬停、下拉菜单、Popover"},"au-shadow-high":{"$value":"0 8px 24px rgba(0, 0, 0, 0.12)","$type":"shadow","$description":"弹窗、抽屉"}},"motion":{"au-duration-fast":{"$value":"0.2s","$type":"other"},"au-duration-base":{"$value":"0.3s","$type":"other"},"au-duration-slow":{"$value":"0.4s","$type":"other"},"au-ease-standard":{"$value":"ease","$type":"other"},"au-ease-out":{"$value":"ease-out","$type":"other"},"au-ease-in-out":{"$value":"ease-in-out","$type":"other"}},"size":{"au-icon-size-16":{"$value":"16px","$type":"dimension"},"au-icon-size-20":{"$value":"20px","$type":"dimension"},"au-icon-size-24":{"$value":"24px","$type":"dimension"},"au-control-height-small":{"$value":"24px","$type":"dimension"},"au-control-height-default":{"$value":"32px","$type":"dimension"},"au-control-height-large":{"$value":"40px","$type":"dimension"}}}} |