基于 Turborepo 的微前端管理后台系统,采用 Monorepo 架构,集成多个业务子系统。
不同子包对 Node.js 版本有不同要求:
- backend: >= 18.0.0
- react19: >= 18.0.0
- vue3-rolldown-vite: >= 22.0.0(由于使用了 Rolldown-Vite,必须使用 Node.js 22 版本)
- vue3-rsbuild: >= 18.0.0
- services: >= 18.0.0
- utils: >= 18.0.0
- build-utils: >= 18.0.0
推荐使用 Node.js 22 LTS 版本进行开发,以确保所有子包都能正常运行。如果使用较低版本可能会遇到构建错误或其他兼容性问题。
- React 19
- Vue 3
- TypeScript
- Rsbuild & Rolldown-Vite
- TailwindCSS
- Ant Design & Element Plus
- Formily
- More Libraries
- Node.js >= 18.0.0
- Koa 3.x
- TypeScript
- ESM 模块系统
b-admin-platform/
├── apps/ # 应用部署目录(预留)
├── packages/ # 包目录
│ ├── react19/ # React 19 演示系统
│ │ ├── src/
│ │ │ ├── pages/ # 页面组件
│ │ │ ├── router/ # 路由配置
│ │ │ ├── services/ # 接口服务
│ │ │ └── utils/ # 工具函数
│ │ ├── index.html
│ │ ├── package.json
│ │ ├── rsbuild.config.ts
│ │ └── tsconfig.json
│ ├── vue3-rolldown-vite/ # Vue3 rolldown-vite 演示系统
│ │ ├── src/
│ │ │ ├── views/ # 页面组件
│ │ │ │ └── tabs/ # 标签页组件
│ │ │ ├── router/ # 路由配置
│ │ │ ├── stores/ # 状态管理
│ │ │ └── assets/ # 静态资源
│ │ ├── index.html
│ │ ├── package.json
│ │ ├── vite.config.ts
│ │ └── tsconfig.json
│ ├── vue3-rsbuild/ # Vue3 rsbuild 演示系统
│ │ ├── src/
│ │ │ ├── views/ # 页面组件
│ │ │ │ └── Home/ # 首页组件
│ │ │ │ └── components/ # 子组件
│ │ │ ├── router/ # 路由配置
│ │ │ ├── stores/ # 状态管理
│ │ │ └── assets/ # 静态资源
│ │ ├── index.html
│ │ ├── package.json
│ │ ├── rsbuild.config.ts
│ │ └── tsconfig.json
│
│ ├── backend/ # 后端服务
│ │ ├── src/
│ │ │ ├── controllers/ # 控制器
│ │ │ ├── middlewares/ # 中间件
│ │ │ │ ├── auth.middleware.ts # 认证中间件
│ │ │ │ ├── helper.middleware.ts # 辅助函数中间件
│ │ │ │ ├── notFound.middleware.ts # 404处理中间件
│ │ │ │ └── proxy.middleware.ts # 代理中间件
│ │ │ ├── routes/ # 路由定义
│ │ │ ├── types/ # 类型定义
│ │ │ ├── utils/ # 工具函数
│ │ │ │ ├── logger/ # 日志工具
│ │ │ │ │ ├── config.ts # 日志配置
│ │ │ │ │ ├── dateUtils.ts # 日期工具
│ │ │ │ │ ├── index.ts # 日志主文件
│ │ │ │ │ └── types.ts # 日志类型
│ │ │ │ └── proxy.ts # 代理工具
│ │ │ ├── app.ts # 应用主文件
│ │ │ └── server.ts # 服务器启动文件
│ │ ├── logs/ # 日志文件目录
│ │ ├── public/ # 静态资源
│ │ ├── package.json
│ │ └── tsconfig.json
│ ├── services/ # 共享服务包
│ │ ├── src/ # 源码目录
│ │ ├── dist/ # 构建输出
│ │ ├── package.json
│ │ ├── tsconfig.json
│ │ └── tsup.config.ts # 构建配置
│ └── utils/ # 共享工具包
│ ├── src/ # 源码目录
│ ├── dist/ # 构建输出
│ ├── package.json
│ ├── tsconfig.json
│ └── tsup.config.ts # 构建配置
├── config/ # 全局配置目录
│ ├── tsup/ # tsup 配置
│ │ └── config.ts # 基础配置
│ ├── rsbuild/ # Rsbuild 构建配置
│ │ ├── base.ts # 基础配置
│ │ ├── react.ts # React 配置
│ │ ├── vue3.ts # Vue3 配置
│ │ └── types.ts # 类型定义
│ ├── server/ # 服务器配置
│ │ ├── default.ts # 默认配置
│ │ ├── local.ts # 本地环境
│ │ ├── pre.ts # 预发环境
│ │ ├── prod.ts # 生产环境
│ │ ├── test3.ts # 测试环境3
│ │ ├── test4.ts # 测试环境4
│ │ └── types.ts # 类型定义
│ └── typescript/ # TypeScript 配置
│ ├── base.json # 基础配置
│ ├── react.json # React 配置
│ └── vue.json # Vue 配置
├── scripts/ # 工具脚本
│ └── stop-ports.ts # 停止端口占用脚本
├── bin/ # 二进制文件目录
├── .changeset/ # Changeset 配置
├── .husky/ # Git hooks 配置
├── .vscode/ # VSCode 配置
├── .turbo/ # Turborepo 缓存
├── biome.json # Biome 配置文件
├── package.json # 工作空间配置
├── pnpm-workspace.yaml # pnpm 工作空间配置
├── pnpm-lock.yaml # pnpm 锁定文件
├── tsconfig.json # TypeScript 配置
└── turbo.json # Turborepo 配置
- Node.js >= 18.0.0
- pnpm >= 8.0.0
# 安装依赖
pnpm install# 启动特定应用
pnpm dev:app # 只启动 .env 文件下配置的 APP 服务 和 backend 服务
pnpm dev:apps # 启动 backend 和 所有 前端 APP 服务
# 启动所有服务
pnpm dev
# 代码检查
pnpm lintpnpm build # 构建所有项目
pnpm build:app # 构建指定前端 APP 应用, 本地需要配置 .env 文件,CI 环境需要配置自动读取服务节点名称 APP_NAMEpnpm start:local # 打包前后端项目,启动 KOA 服务,托管 apps/{前端应用} 项目(用于预览部署后的运行效果)
pnpm start:prod # 启用 KOA 服务,托管 apps/{前端应用} 项目pnpm clean # 清理构建缓存
pnpm lint # 运行 biome 检查
pnpm format # 运行 biome 格式化
pnpm check # 运行 biome 检查并格式化
pnpm c:add # 子依赖包更新
pnpm c:version # 子依赖包版本升级
pnpm publish:all # 发布所有子依赖包React 19 演示系统,使用 Rsbuild 构建,集成了:
- Ant Design 组件库
- Formily 表单解决方案
- Zustand 状态管理
- 接口代理演示
Vue 3 演示系统,使用 Rolldown-Vite 构建,集成了:
- Element Plus 组件库
- Pinia 状态管理
- 自动导入组件和API
- 接口代理演示
注意事项:
- 开发时需要同时启动后端服务
- 组件和API自动导入功能由 unplugin-auto-import 和 unplugin-vue-components 提供
- 使用 Element Plus 组件库,支持按需加载
Vue 3 演示系统,使用 Rsbuild 构建,集成了:
- Element Plus 组件库
- Pinia 状态管理
- 自动导入组件和API
- 接口代理演示
注意事项:
- 开发时需要同时启动后端服务
- 组件和API自动导入功能由 unplugin-auto-import 和 unplugin-vue-components 提供
- 使用 Element Plus 组件库,支持按需加载
- 使用 Function Component 和 Hooks(React)/ Composition API(Vue)
- 遵循 Biome 配置进行除了 '*.vue' 以外的代码格式化
- 使用 TailwindCSS 进行样式开发
- 保持 React 和 Vue 项目功能的一致性
- 使用 ESM 模块系统
- 统一错误处理
- API 遵循 RESTful 规范
- 使用 TypeScript 类型检查
- 使用中间件模式处理通用逻辑
- feat: 新功能
- fix: 修复
- docs: 文档
- style: 格式
- refactor: 重构
- test: 测试
- chore: 构建
MIT