包参考
各内部包的详细文档。
Raypx 的 monorepo 包含 11 个内部包,由 Turborepo 统一管理。所有包均通过 @raypx/{name} 导入,仅在仓库内部使用,不会发布到 npm。
包概览
| 分类 | 包名 | 说明 |
|---|---|---|
| 基础设施 | @raypx/env | 基于 Zod 的类型安全环境变量校验 |
| @raypx/logger | 基于 Pino 的结构化日志 | |
| @raypx/database | Drizzle ORM 与 PostgreSQL 连接管理 | |
| 功能 | @raypx/auth | Better Auth 集成,支持懒加载初始化 |
| @raypx/rpc | 基于 oRPC 的类型安全 API 层 | |
| @raypx/storage | 基于 unstorage 的对象存储抽象 | |
| @raypx/email | Resend + React Email 邮件发送 | |
| @raypx/otp | 一次性密码服务 | |
| @raypx/billing | 套餐限额与计费逻辑 | |
| 应用层 | @raypx/i18n | 基于 use-intl 的国际化 |
| @raypx/ui | 基于 shadcn/ui 的共享 UI 组件库 |
依赖关系
@raypx/env <- 所有包的基础依赖
@raypx/logger <- auth, rpc
@raypx/database <- auth, rpc
@raypx/auth <- rpc (context)
@raypx/i18n <- 应用层
@raypx/ui <- 应用层基础设施包不依赖功能包,功能包可以依赖基础设施包,应用层包仅供应用代码使用。
环境变量约定
每个功能包都通过 @raypx/env 定义自己的环境变量 Preset,使用 createViteEnv() 进行校验。
- 服务端变量:直接定义在
server字段中 - 客户端变量:必须以
VITE_PUBLIC_前缀定义在client字段中 - 共享变量:定义在
shared字段中,服务端和客户端均可访问
详细的 Preset 组合模式请参阅 @raypx/env 文档。