跳转到内容

架构概述

apps/
├── spa/ # Web SPA 应用集合(不区分桌面/移动端)
│ ├── admin/ # 平台管理后台(Vue + Element Plus)
│ └── console/ # 通用控制台(Vue + Ionic)
├── native/ # Tauri 原生应用集合(桌面 + Android + iOS)
│ └── seed/ # 主应用
├── api/ # 后端 API 集合(双运行时)
│ ├── edge/ # Serverless API(Hono → Cloudflare Workers)
│ └── bun/ # 重型任务(Hono on Bun, Docker)
├── docs/ # 文档站(Astro SSG)
└── robotics/ # 机器人(ROS1 + Python)

Seed 将所有代码分为四层,依赖方向严格单向:

Layer 3 apps/** 应用层(spa/* / native/* / api/edge / api/bun)
Layer 2 packages/services 业务模块(user / auth / health)
Layer 1 packages/kit + db 基础设施(中间件 / ORM / BaseController)
Layer 0 packages/contracts 契约层(Zod schemas / 枚举 / 错误类)

services 中的业务代码同时被 api/edgeapi/bun 复用。前端 app 共享 kit/frontendcontractscontracts 零依赖,可被任何层安全引用。

层级职责依赖
@seed/contracts0Zod schemas、枚举、错误类仅 zod
@seed/kit1Hono 中间件工厂、前端 BaseController、工具函数contracts
@seed/db1Drizzle schema、AnyDatabase 类型、连接工厂drizzle-orm
@seed/services2业务模块(Controller → Service → Repository)kit + db + contracts
@seed/uiSvelte 5 Web Components

可缓存任务:build / test / lint / type-check 不缓存任务:dev / preview

namedInputs 根据依赖链路确立边界关系:服务端变更仅使 Server 按需失效,前端域缓存维持独立稳定。

{
"serverSource": [
"{projectRoot}/src/**/*.ts",
"packages/contracts/src/**",
"packages/kit/src/hono/**",
"packages/db/**",
"packages/services/**",
],
"frontendSource": [
"{projectRoot}/src/**/*.{ts,vue}",
"packages/contracts/src/**",
"packages/kit/src/frontend/**",
],
}