签入版本
This commit is contained in:
@@ -1,56 +1,70 @@
|
||||
# 1.5 技术栈说明
|
||||
|
||||
:::tip 概述
|
||||
本页列出前后端技术选型与版本基线。版本号以 `go.mod` 与 `ui/package.json` 为准,升级前请以这两个文件的实际内容核对。
|
||||
:::
|
||||
|
||||
## 后端技术栈
|
||||
|
||||
| 类别 | 技术选型 | 版本 | 说明 |
|
||||
|------|----------|------|------|
|
||||
| 语言 | PHP | >= 8.2 | 强类型严格模式 |
|
||||
| 框架 | ThinkPHP | 6.1.x | 核心 Web 框架 |
|
||||
| ORM | think-orm | 2.0 | 数据库操作 |
|
||||
| 认证 | firebase/php-jwt | 6.4+ | JWT 令牌签发与验证 |
|
||||
| Excel | phpoffice/phpspreadsheet | 5.10+ | Excel 导入导出 |
|
||||
| 数据库 | MySQL | 5.7+ / 8.0+ | 主数据库 |
|
||||
| 缓存 | Redis | 6.0+ | 可选,缓存驱动 |
|
||||
| Web 服务器 | Nginx | 1.18+ | 推荐 |
|
||||
| Web 服务器 | Apache | 2.4+ | 兼容 |
|
||||
| 类别 | 选型 | 版本 | 说明 |
|
||||
|---|---|---|---|
|
||||
| 语言 | Go | 1.27 | module 名 `easygoadmin` |
|
||||
| Web 框架 | gin-gonic/gin | v1.12 | 路由、绑定、中间件 |
|
||||
| ORM | gorm.io/gorm | v1.31 | 钩子、软删除、事务 |
|
||||
| MySQL 驱动 | go-sql-driver/mysql | v1.10 | `gorm.io/driver/mysql` |
|
||||
| PostgreSQL 驱动 | jackc/pgx/v5 | v5.11 | `gorm.io/driver/postgres` |
|
||||
| SQL Server 驱动 | microsoft/go-mssqldb | v1.11 | `gorm.io/driver/sqlserver` |
|
||||
| SQLite 驱动 | glebarez/sqlite | v1.11 | 纯 Go 实现,免 CGO |
|
||||
| Oracle 驱动 | godror/godror | v0.51 | 构建标签 `-tags oracle` 启用 |
|
||||
| JWT | golang-jwt/jwt/v5 | v5.3 | Token 签发与解析 |
|
||||
| 校验 | go-playground/validator/v10 | v10.30 | binding 标签驱动 |
|
||||
| 缓存 | redis/go-redis/v9 | v9.23 | 失败自动降级内存 |
|
||||
| 日志 | go.uber.org/zap | v1.28 | 结构化日志 |
|
||||
| 定时任务 | robfig/cron/v3 | v3.0 | 表达式调度 |
|
||||
| Excel | xuri/excelize/v2 | v2.11 | 导入导出 |
|
||||
| 监控 | prometheus/client_golang | v1.25 | metrics 中间件 |
|
||||
| IP 归属地 | ip2region/binding/golang | — | 离线查询 |
|
||||
| 加密 | golang.org/x/crypto | v0.58 | bcrypt 等 |
|
||||
|
||||
## 前端技术栈
|
||||
|
||||
| 类别 | 技术选型 | 版本 | 说明 |
|
||||
|------|----------|------|------|
|
||||
| 框架 | Vue | 3.4+ | 核心 UI 框架 |
|
||||
| 语言 | TypeScript | 4.9+(实际 ^4.9.5) | 类型安全 |
|
||||
| UI 库 | ElementPlus | 2.7+ | 组件库 |
|
||||
| 构建工具 | Vite | 3.2+(实际 ^3.2.10) | 开发服务器与构建 |
|
||||
| 状态管理 | Pinia | 2.1+ | 全局状态管理 |
|
||||
| 路由 | Vue Router | 4.3+ | 路由管理 |
|
||||
| HTTP | Axios | 0.27+(实际 ^0.27.2) | HTTP 请求(注:0.27.x 版本较老) |
|
||||
| 富文本 | TinyMce | 5.10+ | 富文本编辑器 |
|
||||
| 图表 | ECharts | 5.5+ | 数据可视化 |
|
||||
| CSS | TailwindCSS | 3.4+ | 原子化 CSS |
|
||||
| 包管理 | pnpm | - | 高效包管理器 |
|
||||
| 类别 | 选型 | 版本 | 说明 |
|
||||
|---|---|---|---|
|
||||
| 框架 | Vue | ^3.4 | Composition API |
|
||||
| 语言 | TypeScript | ^4.9 | 类型安全 |
|
||||
| 构建 | Vite | ^3.2 | 开发服务器 8001 端口 |
|
||||
| UI 库 | ElementPlus | ^2.7 | 组件体系 |
|
||||
| 状态管理 | Pinia | ^2.1 | store 见 `ui/src/store` |
|
||||
| 路由 | vue-router | ^4.3 | 动态菜单路由生成 |
|
||||
| HTTP | axios | ^0.27 | 拦截器统一封装 |
|
||||
| 图表 | echarts | ^5.5 | 监控图表 |
|
||||
| 富文本 | TinyMCE / @vueup/vue-quill | 5.10 / 1.0-beta | 双编辑器可选 |
|
||||
| Excel | xlsx | ^0.18 | 前端导入导出 |
|
||||
| 图片裁剪 | cropperjs / vue-cropper | ^1.6 / 0.5 | 头像裁剪 |
|
||||
| 对象存储 | ali-oss | ^6.22 | OSS 直传支持 |
|
||||
| 工具库 | lodash / dayjs / qs | — | 通用工具 |
|
||||
|
||||
## 架构特点
|
||||
## 命令行工具
|
||||
|
||||
```text
|
||||
┌─────────────────────────────────────────────────────────┐
|
||||
│ 前端(Vue3 + ElementPlus) │
|
||||
│ 通过 API 调用后端服务,纯 JSON 交互 │
|
||||
└──────────────────────────┬──────────────────────────────┘
|
||||
│ HTTP (JSON)
|
||||
▼
|
||||
┌─────────────────────────────────────────────────────────┐
|
||||
│ 后端(ThinkPHP 8) │
|
||||
│ │
|
||||
│ 路由 → 中间件栈 → 控制器 → 逻辑层 → 模型 → 数据库 │
|
||||
│ │
|
||||
│ 中间件栈: │
|
||||
│ CORS → Auth(JWT+权限) → Tenant(租户) → Demo → Log │
|
||||
└──────────────────────────┬──────────────────────────────┘
|
||||
│
|
||||
▼
|
||||
┌─────────────────────────────────────────────────────────┐
|
||||
│ 数据层(MySQL + Redis) │
|
||||
│ MySQL 主存储,Redis 可选缓存 │
|
||||
└─────────────────────────────────────────────────────────┘
|
||||
```
|
||||
| 工具 | 入口 | 用途 |
|
||||
|---|---|---|
|
||||
| 服务 | `cmd/api` | 启动 HTTP 服务(`make run`) |
|
||||
| 代码生成器 | `cmd/gen` | 内省表结构生成前后端代码(`make gen`) |
|
||||
| 数据迁移 | `cmd/migrator` | 跨库整库迁移(`make migrator`) |
|
||||
|
||||
## 构建与质量工具
|
||||
|
||||
| 命令 | 作用 |
|
||||
|---|---|
|
||||
| `make build` | 编译到 bin/ |
|
||||
| `make test` / `make test-short` | 全部测试 / 跳过外部依赖的短测试 |
|
||||
| `make check` | CI 一站式:fmt-check + vet + test-short + check-config |
|
||||
| `pnpm build` | 前端生产构建 |
|
||||
| `pnpm type:check` | 前端类型检查 |
|
||||
| `pnpm lint:eslint` | 前端 ESLint 检查 |
|
||||
|
||||
## 版本升级建议
|
||||
|
||||
- 后端升级 Go 或 GORM 大版本前,先跑 `make test-short` 确认无回归,再跑 `make test`(需本地 MySQL)
|
||||
- 前端升级 ElementPlus 大版本时重点回归公共组件(`ui/src/components`)与主题样式(`ui/src/styles`)
|
||||
- 数据库方言切换仅改 `config.yaml` 的 `database` 节,无需改代码;跨库搬迁用 `make migrator`
|
||||
|
||||
Reference in New Issue
Block a user