mirror of
https://github.com/Shu-Ying/noname-shuying.git
synced 2026-10-03 02:20:01 +08:00
40 lines
2.2 KiB
Markdown
40 lines
2.2 KiB
Markdown
# 更新清单与可选模块
|
|
|
|
## 梦三模式
|
|
|
|
梦三仍与主包保存在同一仓库,但作为独立下载模块发布。基础清单
|
|
`dist/manifest.json` 不包含 `mengsan/` 文件;模块清单
|
|
`dist/modules/mengsan.json` 单独记录梦三文件、大小和 SHA-256。
|
|
|
|
用户通过扩展菜单的“梦三模式(按需安装/卸载)”下载或卸载。主包版本
|
|
更新只检查主包文件,以及本地已安装模块的文件;“查漏补缺”会检查主包
|
|
资源和已安装模块,不会自动下载未安装的梦三模式。
|
|
|
|
## 发布流程
|
|
|
|
1. 在 `tools/manifest_config.json` 的 `core` 中维护主包必须文件。
|
|
2. 在 `modules` 中维护可选模块的目录、入口和显示名。
|
|
3. 发布工作流为每个模块生成独立清单,并将清单提交到发布标签。
|
|
4. 完整 ZIP 安装包仍包含所有模块,供离线或整包安装使用。
|
|
|
|
客户端从标签的 raw 文件路径读取清单。因此 Gitea 发布必须使用已经包含
|
|
`dist/manifest.json` 和 `dist/modules/*.json` 的同一标签;当前 Gitea 工作流
|
|
会生成并上传附件,但不会改写触发它的标签。
|
|
|
|
发布时生成器会把 `tools/legacy/mengsan-files.json`、上一次完整清单和当前模块
|
|
文件合并,随新标签发布迁移路径清单。它用于接管旧安装中的梦三文件并清理
|
|
不再属于新版本的文件。该文件由迁移时仓库内的梦三路径生成,作为冻结的旧版
|
|
所有权记录,兼容旧更新器已经推进主包版本号、但尚未更新梦三模块的用户。
|
|
|
|
## 旧文件与目录
|
|
|
|
升级时比较旧版和新版的文件路径清单,删除旧清单有、新清单没有的模块文件;
|
|
新增或损坏文件会按 SHA-256 下载和修复。模块卸载只删除模块清单声明的文件。
|
|
|
|
不根据“目录不在新清单中”递归删除目录,避免误删用户自行放入目录的文件。
|
|
确需删除整个旧目录时,先确认其不包含用户数据,再通过主包清单的
|
|
`removeDirectories` 明确声明。
|
|
|
|
新增模块时,清单生成器可通过配置建立独立清单;客户端的安装菜单、启动
|
|
加载和卸载入口仍需为该模块添加对应管理逻辑。
|