DSH 插件升级器
在 DSH 中查看第三方插件更新,支持单个升级和批量升级。
- 自动列出当前环境中已安装的第三方插件。
- 手动检查更新,支持 npm 插件和 Git 仓库插件。
- 升级前检查 Git 插件是否改名,避免直接覆盖现有安装。
- 升级后检查入口和名称是否一致,提示需要处理的问题。
安装
在 DSH 的 Plugins 页面点击「添加插件」,输入 npm 包名:
@happyqu/dsh-plugin-upgrader
安装完成后,完全退出并重新打开 DSH。
如果使用命令行版 DSH,请指定你使用的 profile,例如:
dsh plugin --profile web add @happyqu/dsh-plugin-upgrader
安装后重启对应的 DSH 进程。Desktop 用户请通过应用内 Plugins 页面安装。
使用
- 打开 设置 → Plugins → 升级中心。
- 点击「检查更新」,或只检查某一个插件。
- 点击插件旁的「升级到 …」,也可以点击「全部升级」。
- 查看升级结果,显示「已更新,重启后生效」后,完全退出并重新打开 DSH。
插件详情页也会显示更新信息和升级按钮。
升级中心打开时不会自动检查全部更新。插件不会在后台自动升级,批量升级会依次进行。
支持哪些插件
| 安装来源 | 是否支持升级 |
|---|
| npm 等注册表 | 支持,按最新版本检查和升级 |
| Git 仓库 | 支持,按远端提交检查和升级;需要安装 Git |
| 本地目录或本地安装包 | 不支持,请自行更新本地内容 |
DSH 自带组件、受保护组件和升级器自身不会出现在可升级目标中。
Git 分支说明: 升级会将依赖固定到具体提交,原先指定的分支名称不会保留。后续检查将转向仓库默认分支;如果需要一直跟踪某个特定分支,请自行管理该插件的更新。
升级结果说明
| 提示 | 下一步 |
|---|
| 已更新,重启后生效 | 完全退出并重新打开 DSH |
| 没有变化(空操作) | 重新检查更新,必要时查看安装日志 |
| 插件已改名,停止升级 | 查看插件作者的迁移说明,通过官方 Plugins 页面处理安装 |
| 安装后检查失败 | 先修复问题或恢复可用版本,再重启 DSH |
| 需要先授权构建脚本 | 按页面提示确认并添加授权,然后重试 |
| 升级失败 | 查看错误说明和安装日志 |
升级前如果发现 Git 插件的包名发生变化,或无法读取目标信息,会停止升级,保留当前安装。
安装后的检查只覆盖入口文件和部分名称一致性问题,不能保证插件在所有环境下都能正常运行。安装后检查失败时,新文件已经写入,升级器不会自动回滚。
常见问题
为什么升级后要重启?
升级会替换磁盘上的插件文件,正在运行的 DSH 可能仍在使用旧代码。完全退出并重新打开后,才会加载新版本。禁用再启用不能替代完整重启。
Git 插件提示需要授权构建脚本
部分 Git 插件需要在安装时执行构建脚本。只有确认信任该插件和目标提交后,再按升级结果中的提示,将提供的授权内容合并到当前 profile 的 pnpm-workspace.yaml,然后重新升级。
升级器会尽可能提供可复制的授权内容,但不会自动写入。更新到其他提交时,可能需要重新授权。
插件改名后怎么升级?
请先查看该插件作者的迁移说明。改名可能同时涉及安装名称和配置,升级器不会自动迁移。完成迁移后,再检查更新。
升级后仍然无法启用
查看 DSH 的具体错误和日志,并联系对应插件作者。必要时,通过官方 Plugins 页面恢复已知可用的版本。
如何更新升级器本身?
升级器不会升级自己。请通过 DSH 官方插件管理功能更新 @happyqu/dsh-plugin-upgrader,完成后重启 DSH。
可选配置
默认无需配置。需要调整缓存或隐藏某些插件时,可在当前 profile 的 cordis.patch.yml 中添加或合并:
- id: plugin-upgrader
config:
checkTtlMs: 21600000
concurrency: 3
ignored:
- some-plugin
- other-plugin@1.2.3
checkTtlMs:检查结果缓存时长,单位毫秒,默认 6 小时。
concurrency:同时检查的任务数,默认 3。
ignored:隐藏整个插件,或隐藏匹配指定最新版本的更新结果。
目前需要通过配置文件调整这些选项。
反馈
升级器的问题请提交到 GitHub Issues。请附上 DSH 版本、升级器版本、相关插件名称和错误信息,并移除日志中的密钥、令牌等敏感内容。
License
MIT