Config-only Plugins
Config-only Plugin 是不依赖自定义 Java 或 React 代码即可交付业务能力的 Plugin。它通过 JSON 资源定义 Model、Command、Page、Menu、Permission、字典、数据源以及 bootstrap 分配。
这是大多数 AuraBoot 模块推荐的起点。
为何优先使用 config-only
Config-only Plugin 更易于:
- 在 PR 中评审
- 自动校验
- 导入到多个环境
- 在多 Tenant 间复用
- 安全升级
- 向业务用户解释
代码扩展仍然可用,但应在模块证明确实需要后再添加。
资源映射
| 资源 | 典型文件 | 必需 |
|---|---|---|
| Manifest | plugin.json | 是 |
| Models | models/*.json | 通常 |
| Fields | 位于 Model 或绑定中 | 通常 |
| Dictionaries | dictionaries/*.json | 可选 |
| Commands | commands/*.json | 通常 |
| Pages | pages/*.json | 通常 |
| Menus | menus.json | 通常 |
| Permissions | permissions.json | 通常 |
| Bootstrap | default-bootstrap.json | 推荐 |
| i18n | i18n/en.json | 推荐 |
导入生命周期
Parse plugin directory
-> validate manifest
-> validate resource references
-> preview conflicts
-> import resources
-> publish models/pages/commands
-> register menus and permissions尽早使用 preview / validation。大多数 Plugin 错误都是引用错误:Page 指向了不存在的 Model、Command 引用了未发布的 Field、Menu 使用了未注册的 Permission code。
最小 manifest
{
"pluginId": "com.example.project-tracker",
"namespace": "pt",
"version": "1.0.0",
"displayName:en": "Project Tracker",
"description": "Simple project and task tracking",
"resourceDirs": {
"models": "models",
"commands": "commands",
"pages": "pages",
"dicts": "dictionaries",
"menus": "menus.json",
"permissions": "permissions.json",
"roles": "default-bootstrap.json"
}
}推荐目录结构
plugins/project-tracker/
plugin.json
dictionaries/
task-status.json
task-priority.json
models/
project.json
task.json
commands/
create-project.json
update-project.json
create-task.json
update-task.json
complete-task.json
pages/
project-list.json
project-detail.json
task-list.json
task-form.json
menus.json
permissions.json
default-bootstrap.json
i18n/
en.json常见校验失败
| 失败 | 原因 | 修复 |
|---|---|---|
| Missing model reference | Page 或 Command 引用了未导入的 Model code | 添加 Model 或修正 code |
| Missing field reference | Page 列或 Command 字段引用了未知 Field | 添加 Field 或修正 Field code |
| Menu hidden | Menu Permission 未注册或未分配 | 添加 Permission 并 bootstrap Role |
| Inline binding rules ignored | Binding Rules 写在 Command 文件内,未作为独立资源注册 | 必要时迁移为独立资源 |
| Import succeeds but UI missing | Page 未发布或 Menu 路径错误 | 检查 Page 状态与 Menu 路径 |
发布命令
aura plugin validate plugins/project-tracker
aura plugin publish plugins/project-tracker --yes本地调试时,可查看 Plugin 导入日志。运行时校验器是 schema 与引用问题的可信源。
设计准则
- 每个业务模块独占一个 Plugin 目录。
- 使用稳定的 code;导入后修改 code 等同于一次迁移。
- 字典靠近使用它的 Model。
- 优先使用面向 Command 的表单,而不是通用的 Model 表单。
- 先注册 Permission,再绑定到 Menu。
- 一开始就添加 i18n label。