插件使用手册
插件是 RuoYi-FastAPI 的可管理扩展单元。它把后端模块、可选的 Vue 管理端页面、数据库资源、菜单权限、依赖、配置和后台任务放进同一个 plugin.yaml 能力边界,再由共用后端的运行时负责发现、校验、安装、启停、升级和审计。
这套系统解决什么问题
插件不只是把代码复制到 plugins/ 目录。安装器会把清单中的资源转成可检查的执行计划:
| 资源 | 由谁声明 | 安装或运行时作用 |
|---|---|---|
| Python 模块与路由 | backend | 自动扫描、注册接口和健康检查 |
| 页面、菜单与权限 | frontend、permissions | 生成动态路由、菜单和按钮鉴权 |
| 表结构与初始化数据 | migrations、seeds | 按 MySQL / PostgreSQL 执行数据库资源 |
| 外部依赖 | dependencies | 检查、允许、锁定并显式安装 |
| 配置与文件资源 | config、resources | 同步配置项,并校验静态、上传、临时资源路径声明 |
| Hook 与 Job | hooks、jobs | 接入生命周期和调度器 |
推荐阅读路径
- 先阅读生命周期与运行边界,理解源码状态和数据库状态为什么分开。
- 使用创建第一个插件和脚手架模板生成最小可检查工程。
- 按工程与目录结构整理模块,再阅读
plugin.yaml总览和各字段页。 - 分别完成插件后端开发、插件前端开发和Migration 与 Seed。
- 使用依赖、锁定与离线安装准备制品,再按安装、启停、升级与卸载运行插件。
- 最后完成测试与发布;如果迁移中断,直接进入Migration 故障恢复。
两套 Vue 前端怎样共用
后端插件目录和运行时只有一份。全栈插件的前端页面分别放入 Vue 3 或 Vue 2 管理端,并让 frontend.menus[].component 指向同一个逻辑路径 plugin/<id>/<view>。页面加载器会根据宿主版本选择对应实现,不能把 Vue 3 构建产物直接复制到 Vue 2 工程。
只有目标 Vue 主版本不同的依赖、构建插件和组件写法需要在 Manifest 或前端源码中分开;业务接口、权限字符、数据库资源和生命周期逻辑保持一致。
插件边界
- 插件只能通过声明的模块、路由、权限、资源和配置参与宿主运行时。
plugin.yaml描述能力,不保存已安装版本、启用状态或最近一次错误。- Migration、Seed、Hook、Job 必须能被
check、health或测试命令单独诊断。 - 依赖安装是显式 CLI 操作,应用启动不会自行联网执行
pip install或npm install。 resources当前只参与 Manifest 校验和清理能力提示,不会自动创建、隔离或删除目录。purge固定清理菜单、配置、Migration 历史、任务和插件记录;源码存在时会先调用onPurge,但不会删除源码目录,业务表和文件是否清理由 Hook 实现决定。源码已经缺失时只能执行元数据清理,onPurge会被跳过。

