前言¶
在 DSH 的插件开发流程中,插件市场本身是一个插件。更新插件市场时,旧版市场需要先被卸载,新版市场再被安装。这个顺序在 dshmarket 的实现中存在一个时序问题:卸载旧市场后,市场进程终止,无法继续执行安装新市场的操作。于是出现了「市场要更新自己,却因为更新流程把自己卸载掉了」的循环。
为了打破这个循环,这个插件被设计出来。它不负责智能判断,只做一件事:在更新市场时,先由它接管卸载和安装的流程,确保旧市场卸载后,新市场能被正确安装。
是什么¶
这是一个专治 DSH 插件市场「无法更新自己」的小工具。维护者为 Vikrant-Aleph。它通过在更新流程中提前介入,先卸载旧版市场,再安装新版市场,从而避免市场在更新中途终止的问题。它不是智能插件,也不依赖任何额外运行时环境或构建步骤。
核心功能¶
- 检查 npm 最新稳定版
- 如果已是最新,提示无需更新
- 卸载旧版市场
- 安装新版市场
- 核对版本并汇报结果
- 更新失败时显示操作详情,必要时提供恢复建议
安装与启用¶
从 npm 安装¶
在 DSH 自带的插件管理界面,使用包名安装:
dshmarket-update-helper
也可以让 DSH 里的 Agent 通过 plugin_manager 安装 bundle:dshmarket-update-helper。
从源码安装¶
将项目下载到本地,在 DSH 插件管理器中将项目目录的绝对路径作为本地 bundle 安装。
本地安装可能直接引用该目录,安装后不要删除源码。
使用方法¶
安装完成后,在 DSH 界面中打开:
设置 → 市场更新助手 → 更新插件市场
点击后等待执行。流程会自动检查最新版本,如果不是最新,会先卸载旧版市场,再安装新版市场,最后核对版本并汇报结果。如果需要重启,助手会提示,不会强制关闭 DSH 进程。
适用场景与注意¶
这个插件针对的是 dshmarket 在更新时的这一特定场景。不同版本或不同部署方式可能没有这个问题。如果市场以后不再存在这个更新问题,可以卸载本插件。
插件以当前 DSH 进程的权限运行,安装前应检查源码与许可证(本项目使用 MIT 许可证)。更新失败时,可查看助手中的「操作详情」,如果恢复也失败,应使用 DSH 自带的插件管理器重新安装 dshmarket。
小结¶
这个插件解决的是插件市场「无法更新自己」的技术困境。它不追求智能,只做简单可靠的流程接管。它的存在是暂时的——当市场修复了更新流程,它就可以光荣退休。
项目地址:
- GitHub:https://github.com/Vikrant-Aleph/dshmarket-update-helper
- 目录页:https://www.skillhub.cn/plugins/Vikrant-Aleph/dshmarket-update-helper