# turbo-bun-hono-microservices **Repository Path**: youwei997/turbo-bun-hono-microservices ## Basic Information - **Project Name**: turbo-bun-hono-microservices - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-17 - **Last Updated**: 2025-06-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Turbo Bun Hono 微服务模板 一个使用 **Bun + Hono + Prisma** 打造的轻量级微服务脚手架,使用 Turborepo 与 pnpm 管理多包仓库。 ## 主要目录 ``` apps/ # 各微服务 auth-service 认证服务 (3000) system-service 系统服务 (4000) packages/ # 共享代码 database Prisma 客户端 & schema ``` ## 前置条件 | 工具 | 最低版本 | | ---- | -------- | | Bun | 1.1 | | pnpm | 8 | ## 快速开始 ```bash # 安装依赖 pnpm i # 启动全部服务 (热更新) pnpm dev # 分别访问 # http://localhost:3000 Auth Service # http://localhost:4000 System Service ``` ## 常用脚本 ```bash pnpm build # 打包 pnpm lint # 代码检查 pnpm format # 格式化 ``` ## 数据库操作 ```bash # 生成客户端 pnpm --filter database prisma generate # 本地迁移 pnpm --filter database prisma migrate dev ``` ## 开发待办事项 - [ ] 业务模块规划:明确后台管理系统的核心模块(如用户管理、权限管理、系统设置等),在 `apps` 下为每个服务建立目录 - [ ] 数据库设计:在 `packages/database` 下完善 Prisma schema,定义各业务模块的数据表结构 - [ ] 认证与权限:完善 `auth-service`,实现注册、登录、JWT 鉴权、权限校验等基础能力 - [ ] 系统服务开发:在 `system-service` 中实现用户管理、角色权限、菜单等后台常见功能接口 - [ ] 接口文档与测试:规范接口返回格式,补充接口文档(如 OpenAPI),为核心逻辑编写单元测试 - [ ] 完善开发体验:配置代码格式化、Lint、自动化脚本,保证代码质量 - [ ] 部署与运维准备:设计本地与生产环境的配置方案,准备 Dockerfile、CI/CD 脚 ## 注意: 1. 使用bun启动hono,database库会报 `xxx is not in the project directory and will not be watched`,如果介意这个警告,可以把项目改成nodejs服务,使用tsx监听 主程序 ```ts import { serve } from "@hono/node-server"; import { Hono } from "hono"; const app = new Hono(); app.get("/", (c) => { return c.text("Hello Hono!"); }); serve( { fetch: app.fetch, port: 5000, }, (info) => { console.log(`Server is running on http://localhost:${info.port}`); } ); ``` package.json 需要加上`"type": "module",` ```json { "name": "app-service", "type": "module", "scripts": { "dev": "tsx watch src/index.ts", "build": "tsc", "start": "node dist/index.js" }, "dependencies": { "@prisma/client": "^6.9.0", "@repo/database": "workspace:*", "@hono/node-server": "^1.14.4", "hono": "^4.7.11" }, "devDependencies": { "@repo/eslint-config": "workspace:*", "@repo/typescript-config": "workspace:*", "@types/node": "^20.11.17", "tsx": "^4.7.1", "typescript": "^5.8.3" } } ```