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)。