Files
easygoadmin-wiki/EasyGoAdmin_Gin_NaiveVue/zh/tech-stack.md
T
2026-10-25 17:24:27 +08:00

71 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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`