docs/docs/cn/plugin-development/index.md
NocoBase 采用 微内核架构,核心仅负责插件的生命周期调度、依赖管理和基础能力封装。所有业务功能都以插件形式提供。因此,理解插件的组织结构、生命周期与管理方式,是定制化 NocoBase 的第一步。
每个插件都是独立的 npm 包,通常包含如下目录结构:
plugin-hello/
├─ package.json # 插件名称、依赖与 NocoBase 插件元信息
├─ client.js # 前端编译产物,供运行时加载
├─ server.js # 服务端编译产物,供运行时加载
├─ src/
│ ├─ client/ # 客户端源码,可注册区块、操作、字段等
│ └─ server/ # 服务端源码,可注册资源、事件、命令行等
NocoBase 默认会扫描以下目录以加载插件:
my-nocobase-app/
├── packages/
│ └── plugins/ # 源码开发中的插件(优先级最高)
└── storage/
└── plugins/ # 已编译的插件,例如上传或发布的插件
packages/plugins:用于本地开发的插件目录,支持实时编译与调试。storage/plugins:存放已编译好的插件,如商业版或第三方插件。一个插件通常经历以下阶段:
:::tip
pull 仅负责下载插件包,真正的安装过程由首次 enable 触发。pull 而未启用,将不会被加载。:::
# 1. 创建插件骨架
yarn pm create @my-project/plugin-hello
# 2. 拉取插件包(下载或链接)
yarn pm pull @my-project/plugin-hello
# 3. 启用插件(首次启用会自动安装)
yarn pm enable @my-project/plugin-hello
# 4. 停用插件
yarn pm disable @my-project/plugin-hello
# 5. 卸载插件
yarn pm remove @my-project/plugin-hello
在浏览器中访问插件管理器,可直观地查看与管理插件: