Plugins 导读
三种入口函数,决定你的插件怎么被加载
插件必须导出一个默认入口对象,SDK 提供了三个构造器:`definePluginEntry` 给非消息通道类插件用,`defineChannelPluginEntry` 给消息通道用并自动处理注册模式,`defineSetupPluginEntry` 只返回 `{ plugin }` 用于禁用或延迟加载场景。最容易搞错的是 `kind` 字段只接受 `"memory"` 或 `"context-engine"`,以及 `registerFull` 只在 `registrationMode === "full"` 时执行。
先讲这一页到底在解决什么
三种入口函数,决定你的插件怎么被加载
插件必须导出一个默认入口对象,SDK 提供了三个构造器:`definePluginEntry` 给非消息通道类插件用,`defineChannelPluginEntry` 给消息通道用并自动处理注册模式,`defineSetupPluginEntry` 只返回 `{ plugin }` 用于禁用或延迟加载场景。最容易搞错的是 `kind` 字段只接受 `"memory"` 或 `"context-engine"`,以及 `registerFull` 只在 `registrationMode === "full"` 时执行。
第一站
🚪 入口不是装饰,是“从哪里开始读”
官方讲 entry points 的目的,是让你别把代码写好了,却忘了告诉系统先看哪一页。
package.json
像包裹外面的总标签,告诉系统入口在哪。
manifest
像身份证,写明你是谁、能干嘛、该从哪开始认你。
subpath
像门牌里的楼层号,入口不一定只有一个。
第二站
🛠 入口相关的配置,像“先把正门、侧门、后门都标好”
这页的代码示例,核心是在告诉系统:我的插件在哪个文件起步,哪些导出可以被读到。
像在地图上画箭头,告诉系统该往哪条小路走。
像在门口贴上“从这儿进”的说明牌。
像正式登记门牌,让系统把这扇门收进清单里。
最后记住
🎈 Entry points 不是细节,它是“先从哪里开始看你”
入口一旦不清楚,后面再漂亮的插件也会像没有门牌的房子,别人找不到。