Skip to content

架构决策记录 (ADR)

概述

ADR(Architecture Decision Record)记录 Walnut Admin monorepo 项目中的关键架构决策。每一条 ADR 包含:决策背景(Context)、决策内容(Decision)、以及后果(Consequences)。

当前共 16 条 ADR,涵盖包命名、TypeScript 配置、依赖治理、发布流水线、测试策略、验证策略等领域。

ADR 列表

ADR决策状态
0001包命名——诚实命名,不用 "shared" / "core"✅ 已实现
0002双模式消费——"source" 给 Vite,CJS 构建给后端✅ 已实现
0003共享包不做环境变量默认值✅ 已实现
0004直接 import @walnut/contract,不加包装层✅ 已实现
0005前端 only 包 JIT(源码),共享包构建 CJS✅ 已实现
0006按运行时 API 依赖分层✅ 已实现
0007后端 libs 保留为 NestJS CLI 内部 monorepo✅ 已实现
0008统一版本号,独立部署⚠️ deploy.yml 待更新
0009三级质量门禁:commit → push → CI⚠️ 测试和 CI 待完善
0010不用 TypeScript Project References✅ 已实现
0011catalogMode: strict、changesets + git-cliff 发布✅ 已实现
0012前后端工具链分歧(tsconfig 独立、env 加载、hoisting、边界)✅ 已实现
0013Barrel export 策略——选择性 barrel,不用 export *✅ 已实现
0014ESLint 配置策略——共享 config 包 + 三预设✅ 已实现
0015测试策略——Vitest 统一、co-located、分层覆盖率✅ 已接受
0016验证策略——保持 class-validator,暂不迁移 Zod✅ 已接受

补充文档

基于 MIT 许可发布