跳到主要内容

package包命名规范

一个包一个职责,包名保持统一格式

  • shared:通用共享代码
  • contracts:模块之间数据格式统一的包
  • utils:工具函数包
  • ui:公共UI组件
  • hooks:公共hooks
包名作用常见内容
shared通用共享代码utils、constants、通用类型
contracts跨模块通信契约DTO数据传输对象、API 类型、事件、Schema
types纯类型定义TS interfaces/types
schemas数据校验定义Zod、JSON Schema
utils工具函数format、parse、helper
constants公共常量枚举、固定配置值
config公共配置eslint、tsconfig、vite 配置
ui公共 UI 组件Button、Dialog、Form
hooks公共 hooksReact hooks
apiAPI 客户端封装fetch、axios、SDK
sdk对外/内部 SDKclient、service 封装
core核心领域逻辑核心算法、业务能力
domain领域模型entities、value objects
services服务层service 封装
database数据库能力schema、repository、ORM
dbdatabase 简写drizzle/prisma 相关
auth鉴权能力token、session、permission
logger日志能力logger 封装
errors错误体系错误码、自定义 Error
events事件系统event bus、事件定义
queue队列能力BullMQ、任务队列
storage文件/对象存储S3、R2、MinIO
cache缓存能力Redis 封装
httpHTTP 通信层client、中间件
rpcRPC 能力gRPC、tRPC 等
cli命令行工具CLI commands
worker后台任务job、consumer
testing测试公共能力mocks、fixtures、test utils

contracts​

  • 用于统一不同模块之间通信数据格式的包。
  • 常放如下内容
text
Request / Response 类型
DTO(数据传输对象)
事件格式
消息格式
错误结构
Zod / JSON Schema