构建扩展
发布
构建自包含的扩展,发布到 npm 或 jsr,并从商店安装。
Kunkun 扩展就是普通的包。发布流程是:构建自包含的产物,npm publish(或 jsr publish),然后用户从内置商店安装。
1. 构建自包含的产物
黄金法则
Kunkun 按原样安装你发布的 tarball——它永远不会在其中运行 npm install。你的命令和服务在运行时需要的所有东西都必须包含在构建输出中。
- 将你的 JS 依赖打包到每个命令/服务输出中(Bun 的打包器默认会这样做——除非宿主提供该依赖,否则避免使用
external条目)。 - 原生
.node插件不能内联。 将插件加载程序 + 平台文件复制到dist/中,并通过backend权限的capabilities.addons允许它们,或者惰性加载原生功能以便扩展优雅降级。 - 将
package.json中的files限制为实际交付的文件(例如["dist"])。
发布前,通过设置 → 开发者 → 加载扩展在本地加载构建文件夹进行验证。
2. 商店所需的清单字段
商店从你的 kunkun manifest 中读取以下字段:
{
"kunkun": {
"identifier": "com.you.my-extension",
"name": "My Extension",
"icon": { "type": "iconify", "value": "mdi:puzzle", "invert": true },
"shortDescription": "商店中显示的一行介绍",
"longDescription": "更长的描述。",
"demoImages": ["https://…/screenshot.png"],
"categories": ["Developer Tools"],
"permissions": ["clipboard-read"],
"commands": [ /* … */ ]
}
}在发布前使用交互式验证器对照 schema 验证整个 package.json。
3. 发布
pnpm build
npm publish --access publicpnpm build
npx jsr publish4. 安装与依赖
用户通过标识符从商店安装。安装时,Kunkun 会:
- 下载 tarball 并解压,
- 验证 manifest,
- 注册扩展(以及它声明的任何
services[])。
如果你的扩展消费另一个扩展的服务,请在 serviceDependencies 中声明。商店会预览所需的服务,并在卸载其他扩展依赖的扩展时发出警告。
版本控制提示
- 每次发布时更新
version;用户通过商店获取更新。 - 将你的
identifier视为永久性的——安装、存储和授权都是基于它关联的。 - 更改服务的方法签名对于消费者来说是破坏性变更——请对契约进行版本控制。