RT Stack 开源项目教程
1. 项目介绍
RT Stack 是一个现代化且轻量级的全栈项目模板,基于 turborepo,拥有模块化组件、共享配置、容器化部署和 100% 类型安全性的特点。它采用了一系列现代技术栈,包括 React、Tanstack、Hono、Better Auth、Drizzle ORM 等,旨在为开发者提供一个开箱即用的全栈开发框架。
2. 项目快速启动
环境准备
确保你的系统上安装了以下工具:
- Node.js(版本 22+)
- pnpm(版本 10+)
- Postgres 数据库(可以通过 Docker 或 Podman 容器运行)
创建项目
使用以下命令创建一个基于 RT Stack 模板的新项目:
pnpm dlx create-turbo@latest -m pnpm -e https://github.com/nktnet1/rt-stack YOUR_PROJECT
将 YOUR_PROJECT
替换为你项目的名称。
项目结构
创建项目后,项目结构大致如下:
your-project/
├── apps/
│ ├── web/
│ └── server/
├── packages/
│ ├── api/
│ ├── auth/
│ ├── db/
│ └── ui/
└── tools/
安装依赖
进入项目目录并安装所有依赖:
cd YOUR_PROJECT
pnpm install
配置环境变量
复制 .env.example
文件为 .env
文件,并配置数据库连接和其他所需的环境变量:
pnpm env:copy-example
启动数据库
在后台启动一个本地 Postgres 实例(例如使用 Docker):
docker compose up db --detach
推送数据库模式
将 drizzle 模式推送到你的数据库:
pnpm db:push
运行项目
现在可以启动所有应用:
pnpm dev
默认情况下,以下 URL 可用:
- Web 应用:
http://localhost:8085
- 后端服务器:
http://localhost:3035
3. 应用案例和最佳实践
工作流自动化
使用 GitHub Actions 或 GitLab CI/CD 实现自动化工作流,确保代码质量并简化部署流程。
代码质量
- 使用 TypeScript 进行类型检查。
- 使用 ESLint 和 Prettier 保持代码风格一致。
模块化开发
- 利用 turborepo 的特性,实现独立包的模块化开发。
- 使用
pnpm --filter=<name>
命令来单独操作包。
用户界面
- 使用 Tailwind CSS 和 Shadcn UI 组件库构建响应式和美观的用户界面。
- 通过
pnpm ui-add
命令添加新的 Shadcn UI 组件。
身份验证
- 使用 Better Auth 实现用户注册和登录功能。
4. 典型生态项目
API 服务
使用 RT Stack 中的 api
包来构建基于 trpc 的 API 服务,实现高效的 API 请求处理。
数据库迁移
通过 db
包管理数据库模式和迁移,确保数据模型的持续更新。
通用工具库
在 tools
目录中创建通用的工具库,以便在整个项目中复用。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考