企业级管理后台脚手架选型实录:从生态盘点到 RuoYi-Vue-Plus 落地
企业级管理后台脚手架选型实录:从生态盘点到 RuoYi-Vue-Plus 落地
本文记录”荣记方舟 Ark Admin”项目在技术选型阶段的全过程:开源脚手架生态调研、RuoYi 版本对比与决策、以及 RuoYi-Vue-Plus 的落地实践与踩坑复盘。
1. 为什么不自研,而是选开源脚手架
企业级管理系统(中后台)有一套高度通用的能力底座:用户与角色权限(RBAC)、菜单管理、字典管理、操作日志、代码生成、定时任务……这些能力每个企业项目都要做,但实现思路大同小异。自研意味着数月的工作量和持续的维护成本;而选择一个活跃的开源脚手架,等于站在社区肩膀上起步,把精力留给真正的业务。
选型的核心诉求有三个:
- 开箱即用:权限、代码生成等基础能力齐备;
- 可二次开发:代码清晰、文档完善、升级路径明确;
- 社区活跃:Bug 修得快、生态配件多,不担心”跑路”风险。
2. 开源脚手架生态盘点
2.1 Vue 生态
| 项目 | 技术栈 | 特点 |
|---|---|---|
| vue-vben-admin | Vue3 + TS + Vite + Pinia | 社区最活跃的 Vue3 中后台,组件化程度高 |
| Soybean Admin | Vue3 + TS + Vite | 界面精致,UI 库可选(Element Plus / Ant Design Vue) |
| vue-element-admin | Vue2 + Element UI | 经典之作,资料最多,但 Vue2 已停维护,新项目不推荐 |
| vue-pure-admin | Vue3 + TS + Vite | 轻量纯净,适合深度定制 |
| Arco Design Pro / TDesign Starter | 字节 / 腾讯 | 绑定官方组件库,规范统一 |
2.2 React 生态
| 项目 | 技术栈 | 特点 |
|---|---|---|
| Ant Design Pro | React + UmiJS + AntD | 蚂蚁官方出品,企业级事实标准 |
| Refine | React + TS | 面向 B2B 内部工具,国际化活跃 |
| react-admin | React + Redux | 老牌 B2B 管理框架,适合数据密集型 CRUD |
2.3 前后端一体全栈脚手架(国内企业最常用)
| 项目 | 技术栈 | 特点 |
|---|---|---|
| RuoYi(若依) | Spring Boot + Vue | 使用率最高,RBAC + 代码生成开箱即用 |
| JeecgBoot(积木) | Spring Boot + Vue3 | 低代码方向,在线表单/报表生成 |
| go-admin / gin-vue-admin | Go (Gin) + Vue | Go 后端首选 |
| kinit | FastAPI + Vue3 | Python 生态,含小程序端 |
2.4 盘点后的初步结论
后端为 Java 系、要快速交付、要完整的权限与代码生成体系 → 候选锁定 RuoYi(若依)。接下来就是关键的版本选择。
3. RuoYi 版本怎么选?
若依有两个体系:官方版 与 Dromara 社区增强版,二者差异不小,选错成本很高。
3.1 官方版本家族谱
| 版本 | 架构 | 技术栈 | 适用场景 |
|---|---|---|---|
| RuoYi(单体版) | 单体 + 服务端渲染 | Spring Boot + Thymeleaf | 简单老式项目 |
| RuoYi-Vue | 前后端分离 | Spring Boot 2 + Vue2 | 经典但 Vue2 已停维护,新项目不推荐 |
| RuoYi-Vue3 | 前后端分离 | Spring Boot 2 + Vue3 + Element Plus | 官方当前主力,单体新项目首选 |
| RuoYi-App | 前后端分离 + 移动端 | uni-app | 需要 App / 小程序 |
| RuoYi-Cloud | 微服务 | Spring Cloud Alibaba + Vue | 分布式大团队 |
| RuoYi-Flowable | 前后端分离 | Vue3 + Flowable | 强工作流需求 |
3.2 Dromara 社区增强版
- RuoYi-Vue-Plus:基于 RuoYi-Vue3 深度增强——Sa-Token 鉴权、Mybatis-Plus、MapStruct、多数据源(MySQL/PostgreSQL/达梦等)、数据权限、防重复提交,代码质量与安全规范远超官方版,社区活跃度最高;
- RuoYi-Cloud-Plus:RuoYi-Cloud 的微服务增强版。
3.3 决策流程
新项目?
├─ 单体足够 → RuoYi-Vue3(官方,保守稳定)
│ └─ 或 RuoYi-Vue-Plus(增强,功能全,更推荐)
├─ 需要微服务 → RuoYi-Cloud-Plus > RuoYi-Cloud
├─ 需要工作流 → RuoYi-Flowable
├─ 需要移动端 → RuoYi-App
└─ 老项目维护 → 保持原版本,不建议中途升级
3.4 四个关键考量点
- JDK / Spring Boot 版本:官方版主分支停留在 Spring Boot 2.x + JDK8;Plus 版提供 JDK8 / JDK17 / JDK21(Spring Boot 3.x)多分支。新项目应优先 JDK17/21 + Spring Boot 3;
- 数据库:官方版默认 MySQL;Plus 版支持多数据源,适合异构数据库与国产化需求;
- 更新频率:Plus 版迭代快、修复及时,但升级成本更高;
- 团队技术栈:Vue3/TS 熟悉度决定了上手成本。
3.5 最终决策
RuoYi-Vue-Plus(JDK17 + Spring Boot 3 分支) —— 单体优先、功能完整、技术栈现代化,为”荣记方舟”的长期演进留足空间。
4. 落地实践:获取 RuoYi-Vue-Plus
4.1 获取方式
| 方式 | 命令 | 适用场景 |
|---|---|---|
| git clone(浅克隆) | git clone --depth=1 https://gitee.com/dromara/RuoYi-Vue-Plus.git | 需要版本管理、便于后续 pull 更新 |
| 下载源码包 | Gitee 仓库页 → 下载 ZIP | 只要一份快照,不要 .git 历史 |
4.2 踩坑记录:网络映射盘的路径解析问题
本次落地遇到一个真实的环境问题:目标目录位于网络存储映射盘(如 E:\...\05荣记方舟)上,而在受限的自动化执行环境中,该路径无法通过 realpath 解析,导致下载命令无法启动(ENOENT: no such file or directory)。
复盘结论:
- 自动化脚本/CI 环境里,优先使用本地物理路径,网络盘、映射盘、中文长路径都可能是坑;
- 中文目录名 + 网络驱动器组合在部分工具链(尤其 Windows 沙箱)下兼容性差;
- 解决思路:先在本地路径完成下载与验证,再同步/复制到网络存储归档。
5. 小结与后续计划
- 选型结论:RuoYi-Vue-Plus(JDK17 + Spring Boot 3);
- 下一步:解决环境路径问题后拉取源码 → 对照需求核对技术栈 → 规划二次开发结构(模块划分、业务代码生成、权限模型扩展)。
选型没有银弹,只有”适合当前项目阶段”的方案。把过程记录下来,本身就是团队最大的资产。