Config-only Plugins

Config-only Plugin 是不依赖自定义 Java 或 React 代码即可交付业务能力的 Plugin。它通过 JSON 资源定义 Model、Command、Page、Menu、Permission、字典、数据源以及 bootstrap 分配。

这是大多数 AuraBoot 模块推荐的起点。

为何优先使用 config-only

Config-only Plugin 更易于:

  • 在 PR 中评审
  • 自动校验
  • 导入到多个环境
  • 在多 Tenant 间复用
  • 安全升级
  • 向业务用户解释

代码扩展仍然可用,但应在模块证明确实需要后再添加。

资源映射

资源典型文件必需
Manifestplugin.json
Modelsmodels/*.json通常
Fields位于 Model 或绑定中通常
Dictionariesdictionaries/*.json可选
Commandscommands/*.json通常
Pagespages/*.json通常
Menusmenus.json通常
Permissionspermissions.json通常
Bootstrapdefault-bootstrap.json推荐
i18ni18n/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 referencePage 或 Command 引用了未导入的 Model code添加 Model 或修正 code
Missing field referencePage 列或 Command 字段引用了未知 Field添加 Field 或修正 Field code
Menu hiddenMenu Permission 未注册或未分配添加 Permission 并 bootstrap Role
Inline binding rules ignoredBinding Rules 写在 Command 文件内,未作为独立资源注册必要时迁移为独立资源
Import succeeds but UI missingPage 未发布或 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。

后续步骤