插件必须托管于GitHub或Bitbucket公共仓库,使用main/master分支,根目录含README.md和合法package-control.json,通过PR提交至pc-repository才能被收录。

插件必须托管在 GitHub 或 Bitbucket 公共仓库
Package Control 不接受手动上传,只从指定代码托管平台自动拉取元信息。GitHub 是最稳妥的选择,Bitbucket 支持但近年已逐步弱化,不建议新项目选用。
- 仓库名必须与插件名完全一致(区分大小写),例如插件想叫
AlignTabPro,仓库就必须是https://github.com/yourname/AlignTabPro - 主分支必须是
main或master(Package Control 会默认检出该分支) - 根目录下必须有
README.md,且第一行需为插件名称(纯文本,无 Markdown 标题符号) - 不要把
.sublime-package文件提交进仓库——源码即发布内容
必须提供合法的 package-control.json 清单文件
这个文件是 Package Control 识别、安装、更新插件的唯一依据,放在仓库根目录,不能用其他名字或路径。
-
name字段必须与仓库名、插件内部sublime-package解压后主文件夹名一致(例如AlignTabPro/AlignTabPro.py→name: "AlignTabPro") -
description和author必须存在,不能为空字符串 -
homepage必须是完整 URL(含https://),且能正常访问;若填错,PC 安装时会静默失败 - 如果插件支持 Sublime Text 4,
version字段推荐使用语义化版本(如"1.2.0"),避免用"v1.2"或"1.2-beta"—— 后者会导致升级逻辑异常
示例最小可用 package-control.json:
{
"name": "AlignTabPro",
"description": "Advanced alignment for selections and columns",
"author": "yourname",
"homepage": "https://github.com/yourname/AlignTabPro",
"version": "1.3.0",
"platforms": ["windows", "osx", "linux"],
"sublime_text": ">=4122"
}
提交 PR 到 pc-repository 仓库才能被收录
Package Control 不提供 Web 提交入口,必须通过 GitHub Pull Request 将你的插件信息添加到官方索引库:https://github.com/wbond/package_control_channel。
- 修改的是
repository.json文件(不是channel.json),在packages数组末尾追加一个对象 - 新增项结构必须严格匹配已有格式:键名顺序、缩进、逗号位置都不能错,否则 CI 检查失败,PR 被拒
- 确保你填写的
detailsURL 指向你自己的package-control.json(例如"https://raw.githubusercontent.com/yourname/AlignTabPro/main/package-control.json") - 不要同时提交多个插件到一个 PR;每次只加一个,降低审核阻力
发布后常见失效原因和验证方式
即使 PR 被合并,插件也不一定立刻出现在 Package Control 面板里——索引更新有缓存和异步抓取延迟,通常 1–6 小时生效。
- 用户执行
Package Control: Install Package后搜不到?先运行Package Control: Synchronize Packages强制刷新本地通道缓存 - 安装时报
Unable to download ... 404?检查detailsURL 是否返回 200 且 JSON 格式正确(可用curl -I和jsonlint快速验证) - 安装后插件不加载?确认插件根目录下有
.py文件且文件名与name字段一致;Sublime 不会加载不含 Python 模块的空包 - 更新不触发?确保新 commit 的
package-control.json中version字符串字典序大于旧值("1.10.0" > "1.9.0"成立,但"1.9.0" > "1.10.0"不成立)
最常被忽略的一点:插件仓库的 package-control.json 必须可被公网直接 GET,不能设私有、IP 白名单或登录跳转——哪怕只差一个重定向头,Package Control 就会放弃拉取。

















