Kunkun
构建扩展

发布

构建自包含的扩展,发布到 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 public
pnpm build
npx jsr publish

4. 安装与依赖

用户通过标识符从商店安装。安装时,Kunkun 会:

  1. 下载 tarball 并解压,
  2. 验证 manifest,
  3. 注册扩展(以及它声明的任何 services[])。

如果你的扩展消费另一个扩展的服务,请在 serviceDependencies 中声明。商店会预览所需的服务,并在卸载其他扩展依赖的扩展时发出警告。

版本控制提示

  • 每次发布时更新 version;用户通过商店获取更新。
  • 将你的 identifier 视为永久性的——安装、存储和授权都是基于它关联的。
  • 更改服务的方法签名对于消费者来说是破坏性变更——请对契约进行版本控制。

On this page