插件开发指南
BOKI 采用「复式记账内核 + 插件运行时」架构。内核只负责账套、凭证、科目等核心能力,其余功能(票据、报表、AI、语音、权限……)全部以插件形式存在。零插件状态下内核仍可完成「登录 → 建账套 → 记账」闭环,因此写插件是成本最低、风险最小的贡献方式。
插件结构
每个插件是一个独立目录,至少包含:
my-plugin/ ├── manifest.json # 声明路由 / 菜单 / 插槽 / 权限 ├── index.html # 前端页面(或嵌入现有页面插槽) └── server/ # 后端模块(可选)
manifest.json 关键字段:
id— 全局唯一,如ocr、report-packname/version— 展示名与语义化版本routes— 前端路由表menus— 注入系统菜单的入口slots— 挂载到现有页面的插槽点permissions— 声明的权限项
运行时 API
插件通过统一的运行时接口与内核交互,不直连数据库:
- 账套上下文:当前公司、会计期间、操作员
- 凭证引擎:生成 / 冲销凭证,自动过账
- 辅助核算:部门、项目、客商维度挂接
- 事件总线:凭证过账、月结等事件订阅
本地开发
# 1) 把插件放进本地插件仓库 cp -r my-plugin ../marketplace/plugins/ # 2) 启动内核 + 前端 npm run dev # 3) 系统内「系统管理 → 插件」启用并调试
版本比对由内核内置:安装版本与插件仓库目录中的 version 不一致时,界面显示「更新」按钮,点击即热更新。
发布到插件仓库
开发完成后,将插件提交到插件仓库(版本化的分发体系,支持在线获取更新)。新票据版式、新报表、新皮肤、新语言包都受欢迎。
AGPL-3.0 内核Apache-2.0 官方插件
想看完整示例,参考仓库内的官方插件实现;有疑问在 GitHub Issues 交流。