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