快速开始
- Node.js
>= 22.12(文档站用 Astro 7,硬性要求) - pnpm
10.x(仓库锁定pnpm@10.34.5)
pnpm install本仓运行时零依赖(dependencies 为空),安装的全是构建期工具链(tsx、ajv、handlebars、vitest、astro 等)。
跑一次 codegen
Section titled “跑一次 codegen”pnpm codegen这条命令执行 tsx codegen/src/index.ts,完整流程是:
- 读取
package.json版本号 - 装载并校验
tokens/*.json(Ajv 结构校验) - 解析 ref、合并暗色(语义校验:类型匹配、引用完整性、环检测)
- 装载并校验
specs/*.json与cases/*.json - 删掉整个
dist/并重建 - 依次执行 5 个 target(android → ios → harmony → c → docs)
输出在 dist/:
[android] android/top/lhgb/ui/tokens/LhTokens.kt [android] android/top/lhgb/ui/tokens/LhDarkTokens.kt ...codegen 完成:5 个 target,N 个文件,版本 v0.0.1文件数随令牌内容变化(投影令牌存在时 ios / harmony 会各多一个投影载体文件),以实际输出为准。
pnpm verify # = pnpm verify:tokens && pnpm verify:specsverify:tokens:令牌 schema + 引用完整性 + 关键文字/底色对比度 ≥4.5:1(WCAG AA) + 平台专属语法巡检(var()/rem/sp/dp),并报告孤儿暗色路径(暗色文件声明了、明色集里不存在的键)与缺失类型的暗色键。verify:specs:spec 与 cases 的一致性(case 引用的 prop / event 是否在 spec 中存在等)。
pnpm test快照测试镜像 dist/ 的全部产物。改了令牌或模板后,快照会失败,确认无误后用 pnpm test -- -u 更新快照。
pnpm docs:dev # 本地预览 http://localhost:5185/lhui/core/pnpm docs:build # 生产构建(base 为 /lhui/core/)pnpm docs:preview # 预览生产构建文档站的三个参考页(令牌 / 契约 / 用例)在构建期直接读 tokens/ specs/ cases/ 真源,不需要先跑 codegen。
| 场景 | 命令 |
|---|---|
| 改了令牌,要产物 | pnpm codegen |
| 改了令牌,要产物 + 校验 | pnpm build(= codegen + verify) |
| 改了模板,要产物 + 快照 | pnpm codegen && pnpm test -- -u |
| 只想看令牌速查表 | pnpm codegen 后看 dist/docs/tokens.md |
产物在哪消费
Section titled “产物在哪消费”各原生端消费 dist/ 下对应平台的产物:
- Android:
dist/android/下的 Kotlin 文件 - iOS:
dist/ios/下的 Swift 文件 - 鸿蒙:
dist/harmony/下的 ArkTS 文件 - Windows:
dist/windows/下的 C# 文件
本地联动(改令牌即时生效、不发版)的机制见 本地联动。
Copyright © 2024-2026 风默文学 | 宁ICP备2024006574号 |
苏公网安备32040002010537