Files
noname-shuying/tools/UPDATE.md
T
Diuse dd562ae627 fixed # 修复手机端地图滑动异常的问题
fixed # 重构更新框架,支持选择是否下载梦三模式
fixed # 补充部分意图的资源图片与逻辑
2026-09-29 17:44:21 +08:00

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` 明确声明。
新增模块时,清单生成器可通过配置建立独立清单;客户端的安装菜单、启动
加载和卸载入口仍需为该模块添加对应管理逻辑。