插件通过 npm 包分享。发布到 npm 之后,任何人都可以按名字添加;插件市场会把已发布的插件列在软件的 发现 标签里。
用你的 scope 命名
npm 包名是 @publisher/name,scope 必须和插件的 publisher 一致。比如插件 yourname/level-ideas,就发布为 @yourname/level-ideas,也可以叫 @yourname/ohmygame-plugin-level-ideas。scope 对不上的包会被拒绝。ohmygame 和 personal 这两个 publisher 是保留的。
在 package.json 里:
files列出要发布的内容:.ohmygame-plugin、assets、locales,以及你用到的功能所在的文件夹。keywords包含ohmygame-plugin。publishConfig.access设为public。
发布一个版本
- 在
package.json和.ohmygame-plugin/plugin.json里同时提高version。每次发布都需要新的版本号。 - 检查 npm 将要发布的内容:在 OhMyGame 仓库的本地副本里运行
bun run plugin:check path/to/your-plugin。 - 发布到 npm。
从插件生成器导出的插件自带一个 GitHub Actions 工作流,会带着来源证明(provenance)发布 GitHub Release。使用前,先在 package.json 里加上 repository,再到 npmjs.com 把你的仓库设为这个包的可信发布者。发布前记得加上许可证。
插件市场
插件市场收录发布在 npm 上的插件。一个定时任务会找到它们,用和软件相同的规则检查,然后发布一份索引供软件读取。
- 来源已验证 表示 npm 的来源证明指向了插件的仓库,或者仓库里的
package.json写明了这个包。带来源证明发布是最简单的方式。 - 从插件市场安装会打开和 添加插件… 一样的确认页,并校验 npm 对包名、版本和校验值的签名。
- 发布新版本后,从 npm 添加过你插件的人会看到 可更新。
发布前
- 翻译
locales/zh-CN.json。没翻译之前,它会沿用locales/en.json的内容。 - 只申请需要的权限。插件申请的每一项权限,都会在别人允许之前展示给他们。
- 如果插件带原生代码,请在
longDescription里说明它做什么。别人确认原生代码时,知道它没有沙盒。