# 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`