打包与分发
盒子提供了环境配置等能力,脚本分发只需分发源码即可,无需打包运行环境。盒子支持三种安装方式,覆盖不同场景。
| 方式 | 适合场景 | 用户怎么用 |
|---|---|---|
| 本地安装 | 内部脚本,不想公开代码 | 在盒子中选择本地安装,指定脚本zip文件 |
| 仓库安装 | 脚本托管在Github仓库 | 在盒子中输入仓库地址,自动拉取 |
| 脚本社区 | 脚本已发布至盒子社区 | 在盒子的脚本市场中直接浏览并一键安装 |
本地分发
将脚本目录打包为 ZIP 文件,必须包含 bm-scripts-box-rc.toml。
推荐的结构——配置文件放在 ZIP 根目录:
plaintext
file-sorter.zip
├── bm-scripts-box-rc.toml
├── main.py
├── pyproject.toml
├── icon/
│ └── logo.png
└── ...也支持的结构——配置文件可以放在子目录中:
plaintext
file-sorter.zip
└── file-sorter/
├── bm-scripts-box-rc.toml
├── main.py
└── ...不要将环境依赖打包到ZIP中
Github仓库分发
将脚本代码和 TOML 文件提交到 GitHub 仓库,用户在盒子中输入仓库 HTTP 地址即可自动拉取并安装、如果直连 GitHub 失败,盒子会自动尝试代理镜像克隆仓库。
发布到社区
希望让更多人用上你的脚本,可以发布到脚本社区。发布后用户能直接在盒子市场中搜索、安装、更新,不需要你手动分发 ZIP 包。
详见 发布脚本到社区。
智能覆盖安装
如果脚本 ID 已存在于数据库中,重新安装时不会创建新记录,而是更新现有记录:
- 图标、入口文件等被新版本替换
- 运行时环境重新部署,依赖变化时做增量更新
- 已绑定的快捷键保持不变
这意味着你可以直接向用户提供新版 ZIP 包,用户安装后自动覆盖旧版本,不需要手动卸载再安装。
因为是按
id识别身份,所以info.id(UUID)一旦定下就不要再改,否则会被当成全新脚本。
常见问题
Q:ZIP 包里配置文件没放根目录会怎样? A:也能装(盒子递归扫描),但不推荐——多一层目录,结构不清晰。
Q:重新安装会丢失用户配置吗? A:不会。快捷键、右键菜单开关等用户配置保持不变。
Q:安装失败会留下残留吗? A:不会。任何步骤出错,盒子自动回滚已创建的目录、菜单和数据库记录。
Q:安装失败怎么办? A:对照 常见问题 的安装排查表。