DSH 生态强调模块化,插件开发通常涉及维护一个 dist/ 目录来存放分发包。随着版本迭代,目录中会积累大量旧文件,手动管理容易出错。dsh-dist-manager 旨在解决这一问题,自动管理 dist/ 目录下的版本归档。
核心功能¶
该插件提供了一套完整的分发目录管理方案,核心能力包括:
- 自动归档:扫描
dist/目录下的插件包,按插件名分组并按版本号排序。 - 版本管理:保留最新版本在
dist/根目录,将旧版本移至归档目录。 - WebUI 管理:在 DSH 的设置页 → 插件归档小节提供管理界面。
- 一键操作:支持一键归档所有插件、一键清理所有归档。
- 查看状态:实时显示插件总数、当前版本数、已归档版本数。
- 版本恢复:从归档目录恢复特定版本到
dist/根目录。 - 归档清理:清理特定插件或所有插件的归档。
安装¶
通过以下命令安装插件:
dsh plugin --profile web add <插件目录>
安装后重启 WebUI 即可生效。
典型用法¶
发布新版本后
1. 运行 pnpm pack 生成新的 .tgz 文件到分发目录。
2. 打开 WebUI 设置页,点击「📦 一键归档所有」。
需要恢复旧版本
在归档详情中找到目标版本,点击「恢复」按钮。
清理存储空间
在插件列表中点击「🗑️ 清理」或「🗑️ 清理所有归档」。
配置¶
配置读取优先级为:cordis.yml 的 Config 字段 > config.json 文件 > 默认路径。
不配置时,默认取插件目录上级的 dist/(适用于 link 安装场景)。建议在 cordis.yml 中直接配置:
{
"distDir": "<你的插件分发目录>/dist",
"archiveDir": "<你的插件分发目录>/dist/archive",
"autoArchive": true,
"keepVersions": 1
}
配置项说明:
* distDir:dist 目录路径。
* archiveDir:归档目录路径。
* autoArchive:是否自动归档(预留功能)。
* keepVersions:保留的版本数量(预留功能)。
注意事项¶
- 路径安全:所有文件操作都经过路径验证,防止路径穿越攻击。
- 错误处理:所有操作都有完善的错误处理和用户反馈。
- 实时更新:状态变化后自动刷新界面。
- 配置持久化:配置存储在插件目录下,跨重启保持。
许可证¶
- 代码(
index.js、client.js与其它源文件):MIT。 - 文档:CC BY 4.0(需署名莉娅 / @feverZHONG)。