inxups/dsh-user-plugins:DSH 插件清單面板

DSH 的插件機制允許開發者通過 dsh plugin 命令爲 Profile 添加擴展。然而,DSH 自帶的 Plugin list(設置 → 插件)展示的是加載器中的所有條目,將官方包與第三方包混在一起,且沒有安裝源、版本或 Profile 歸屬信息。inxups/dsh-user-plugins 在 Web GUI 中增加了一個專門的“我安裝的插件”標籤頁,聚焦於你在各 Profile 中手動安裝的第三方依賴,並提供其版本、類型和運行狀態。

這是什麼

這是一個 DSH 插件,採用 Host(Node.js)+ Browser(React)雙面架構。它在 DSH 的 Web GUI 設置中新增“我安裝的插件”標籤頁,用於列出各 Profile 中已安裝的插件。它通過讀取 Profile 目錄下的 package.json 依賴和 bundle 列表,展示安裝源(spec)、版本、類型(bundle/client/plain)以及加載器實時狀態。

核心功能

  • Web GUI 面板:在 DSH 設置 → 插件中增加“我安裝的插件”標籤頁。
  • 列出已安裝的插件:列出你通過 dsh plugin --profile <name> add 裝進各 Profile 的插件。
  • 顯示安裝源、版本、類型:展示插件來源(github、link 等)、磁盤版本及貢獻類型。
  • 顯示實時加載器狀態:展示插件在當前加載器中的實時階段。
  • 讀取 profile 的 package.json 依賴:以磁盤上的依賴爲準,而非運行時條目。
  • 使用平臺自帶 UI 原子:界面元素與 DSH 主 GUI 保持一致的設計風格。
  • 區分官方包與第三方包:自動過濾官方 @deepseek-ai/* 包,僅顯示第三方包。

與自帶清單的區別

內置的 ui-settings-plugin-inventory 與本插件的數據源與範圍不同:

特性 Plugin list(自帶) 我安裝的插件(本插件)
數據源 加載器條目(運行時) Profile 的 package.json 依賴 + bundle 列表(磁盤)
範圍 全部組成的插件,含官方包 僅列你裝進 Profile 的包,官方包一律不顯示
安裝源 spec 無 有(github: / link: / 版本範圍)
版本 無 有(讀包的 manifest)
歸屬 Profile 無 有,並標出當前運行中的那個

安裝與啓用

使用官方命令安裝插件:

dsh plugin --profile web add github:inxups/dsh-user-plugins

安裝後需重啓 dsh,使插件進入組合。若從源碼運行,需將 dsh 替換爲 pnpm dsh。

典型用法

安裝完成後,訪問 Web GUI 的「設置 → 插件」,點擊「我安裝的插件」標籤頁即可查看列表。

通過 GET /dsh-user-plugins/api/list 接口可以獲取插件列表的只讀快照,返回數據包含 Profiles 列表、各 Profile 下的插件詳情(包含 spec、kind、phase 等字段)。

限制與注意事項

  • 官方包不顯示:@deepseek-ai/* 官方包不會出現在列表中。
  • 版本與描述限制:version / description 僅對 Profile 自己 node_modules 裏的包有效;由 DSH 安裝提供的官方包這些字段爲 null。
  • 狀態推斷:當前運行中的 Profile 狀態通過“與加載器條目匹配數最多”推斷,而非直接讀取啓動參數。
  • 無變更訂閱:數據按請求實時讀取,沒有變更訂閱機制;面板上的“刷新”按鈕會重新拉取數據。
  • 語言支持:目前僅支持 zh / en 兩套字典。

總結

該插件與內置的清單互補,適合需要精確管理 Profile 中第三方依賴、查看安裝來源及運行狀態的開發者。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜