mirror of
https://github.com/basketikun/infinite-canvas.git
synced 2026-07-24 15:24:06 +08:00
1.9 KiB
1.9 KiB
官方插件注册表(集中构建 + 远程发布)
本目录只放构建脚本,不放构建产物。官方插件由 CI 构建后发布到孤儿分支 plugins-dist,画布经 jsDelivr 从该分支远程拉取并一键安装。第三方插件不进本流程,由用户自行填 JS URL 安装。
registry/
package.json # 构建依赖(esbuild + SDK)
build.mjs # 一次进程构建所有官方插件 → dist/(gitignore)+ 生成清单
dist/ # 构建产物(gitignore,不提交;CI 发布到 plugins-dist 分支)
产物不进 git:dist/ 与 node_modules/ 均被 .gitignore 覆盖。main 分支只有源码与脚本。
发布流程(CI 自动)
.github/workflows/publish-plugins.yml 在**打版本 tag(v*)**或手动触发(workflow_dispatch)时,与 GitHub Pages 发布一起跑:
npm install && npm run build→ 在dist/产出各<id>.js与official-plugins.json;- 把
dist/强推到孤儿分支plugins-dist(仅含产物,force-push 覆盖)。
前端默认从下面地址读取(可用 VITE_PLUGIN_REGISTRY_URL 覆盖):
https://cdn.jsdelivr.net/gh/basketikun/infinite-canvas@plugins-dist/official-plugins.json
清单里每条的 entry(相对文件名)由前端解析成与清单同目录的绝对 URL,再走既有 URL 安装流程。jsDelivr 对分支有缓存(约数小时),需要立即生效可对该分支目录做 purge。
新增 / 更新官方插件
- 改完某官方插件源码后,在
build.mjs的OFFICIAL里保持登记(新增插件在此加一条),提交到main; - 下次打版本 tag(或手动
workflow_dispatch)时,CI 自动重新构建并发布到plugins-dist。
本地自测官方面板
cd plugins/canvas/registry && npm install && npm run build # 产出 dist/
# 用任意静态服务器伺服 dist/,把 VITE_PLUGIN_REGISTRY_URL 指向其 official-plugins.json