71 lines
3.1 KiB
Markdown
71 lines
3.1 KiB
Markdown
# 1.5 技术栈说明
|
||
|
||
:::tip 概述
|
||
本页列出前后端技术选型与版本基线。版本号以 `go.mod` 与 `ui/package.json` 为准,升级前请以这两个文件的实际内容核对。
|
||
:::
|
||
|
||
## 后端技术栈
|
||
|
||
| 类别 | 选型 | 版本 | 说明 |
|
||
|---|---|---|---|
|
||
| 语言 | 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 | 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 | — | 通用工具 |
|
||
|
||
## 命令行工具
|
||
|
||
| 工具 | 入口 | 用途 |
|
||
|---|---|---|
|
||
| 服务 | `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`
|