EasyStarter logoEasyStarter

项目结构

Monorepo 架构概览

概述

EasyStarter 使用 Turborepo monorepo 结构配合 pnpm workspaces

目录结构

easysaas/
├── apps/
│   ├── web/           # 前端(React + TanStack Start)
│   ├── server/        # 后端(Hono + Cloudflare Workers)
│   ├── native/        # 移动端(React Native + Expo)
├── packages/
│   ├── i18n/          # 共享国际化
│   ├── api-client/    # 类型安全 API 客户端
│   └── storage-config/ # 存储配置
└── docs/              # 文档

应用

Web (apps/web/)

使用以下技术构建的前端应用:

  • React 19 - UI 库
  • TanStack Start - 全栈 React 框架
  • TanStack Router - 类型安全路由
  • TanStack Query - 数据获取
  • TailwindCSS - 样式
  • shadcn/ui - 组件库
apps/web/src/
├── components/    # 可复用 UI 组件
├── routes/        # 页面组件和路由
├── hooks/         # 自定义 React Hooks
├── lib/           # 工具函数
├── configs/       # 应用配置
└── styles/        # 全局样式

Server (apps/server/)

使用以下技术构建的后端 API:

  • Hono - Web 框架
  • Cloudflare Workers - Serverless 运行时
  • Drizzle ORM - 数据库工具包
  • oRPC - 类型安全 RPC
apps/server/src/
├── routers/       # API 路由(oRPC)
├── handlers/      # 业务逻辑
├── db/            # 数据库 schema 和迁移
├── middlewares/   # 请求中间件
├── emails/        # 邮件模板
└── lib/           # 共享工具

Native (apps/native/)

使用以下技术构建的移动应用:

  • React Native - 跨平台移动开发
  • Expo - 开发平台
  • Expo Router - 基于文件的路由

i18n (packages/i18n/)

共享国际化包,包含所有支持语言的翻译。

api-client (packages/api-client/)

从服务器类型生成的类型安全 API 客户端。

storage-config (packages/storage-config/)

共享存储配置和工具。

关键文件

文件用途
turbo.jsonTurborepo 流水线配置
pnpm-workspace.yaml工作区包定义
.oxlintrc.json代码检查规则(oxlint
.oxfmtrc.json格式化规则(oxfmt
tsconfig.jsonTypeScript 配置

开发工作流

# 安装依赖
pnpm install

# 启动所有应用
pnpm dev

# 启动特定应用
pnpm dev:web
pnpm dev:server

# 构建所有
pnpm build

# 类型检查
pnpm check-types

On this page