前言¶
DSH 的理念是「一切皆插件」。在 web profile 中,插件商店通常用来浏览、搜索和安装插件。dsh-plugin-hub 0.1.6 已经提供图形化插件商店,包括本地评分评论、依赖拓扑图、操作审计日志、插件开发脚手架、安装前质量门与安全扫描、健康度排行榜和信任徽章。
下面介绍 yiqizhuapangxiema/harness-plugin-store-optimized。它是 dsh-plugin-hub 0.1.6 的定制优化版,主要处理插件下载目录、bundle 层入口 id 冲突、pnpm 寻路、重启提示和若干上游 bug。
这是什么¶
一句话定位:dsh-plugin-store-optimized 是面向 DSH web profile 的插件商店定制版。
- 仓库:
yiqizhuapangxiema/harness-plugin-store-optimized - package.json 包名:
dsh-plugin-store-optimized - 维护者:
yiqizhuapangxiema - 许可证:
MIT;上游许可见LICENSE,二次开发需保留原作者版权声明 - 解决的问题:可配置插件下载目录、bundle 层入口 id 冲突检测、pnpm 自动寻路、准确的“重启生效”提示、启用超时透传真实错误、scoped 包支持和上游 bug 修复
核心功能¶
可配置插件下载目录¶
在设置页或全局 DSH 设置中新增「插件安装目录」。默认目录为:
<DSH_HOME>/plugins
留空保存会恢复默认。商店初始化时会自动创建该目录。商店安装的插件以源码文件夹形式落盘,并自动注册部署;卸载时同步删除插件文件夹和空的 scope 父目录。
bundle 层入口 id 冲突检测¶
安装前会检测新插件 bundle 层中的入口 id 是否与现有 bundle 层重复。若发现重复,会直接拦截并列出冲突 id,避免相同 loader 入口 id 导致插件树崩溃。
pnpm 自动寻路¶
安装链路会先查找 PATH 中的 pnpm。如果 pnpm 不在 PATH 上,会自动回退到 harness 本地的 pnpm shim。这样在部分终端环境下也能继续执行插件安装。
准确的重启生效提示¶
bundles 层插件只在启动时组合。安装回执会明确提示重启 dsh 后生效,不再把安装结果描述为热加载。对“已安装但未加载”的插件执行启用或禁用时,也会给出同样的明确提示。
启用超时透传真实错误¶
插件启用超时时,报错会附上条目真实的初始化失败原因,而不是只返回“超时”。
scoped 包支持¶
@scope/name 形式的包可以正确暂存和卸载。scope 父目录会自动创建,暂存目录名扁平化。
上游 bug 修复¶
已核实资料列出的修复包括:
- YAMLSeq 卸载误判。
- 补丁完整性检查误报。
- pnpm 卸载后置失败容忍。
安装与启用¶
前置条件¶
先安装官方 dsh CLI:
npm install -g @deepseek-ai/dsh
需要准备 pnpm 10+。如果 pnpm 不在 PATH 上,商店安装插件时会自动寻找 harness 本地的 pnpm shim。
package.json 的 engines 要求:
node ^22.19.0 || >=24.0.0
方式一:克隆本仓库安装¶
先卸载旧版 registry 版,避免两者同时安装:
dsh plugin --profile web remove dsh-plugin-hub
然后克隆本仓库并安装:
git clone https://github.com/yiqizhuapangxiema/harness-plugin-store-optimized.git
cd harness-plugin-store-optimized
dsh plugin --profile web add file:<本仓库绝对路径>
安装后重启 dsh web 使其生效。浏览器中按 Ctrl+F5 刷新页面。
方式二:npm 安装¶
npm 包 dsh-plugin-store-optimized 尚未发布。发布后可使用:
dsh plugin --profile web add dsh-plugin-store-optimized
方式三:给已装的 registry 版打补丁¶
如果保留已安装的 registry 版 dsh-plugin-hub,可以使用本仓库提供的补丁。示例:
cd <DSH_HOME>/profiles/web/node_modules/dsh-plugin-hub
git apply --ignore-whitespace <本仓库>/patches/installer.js.patch
其余 4 个补丁按同法应用。上游发布新版本后,升级并重新打补丁即可。
回归测试¶
运行:
node tests/verify-install.mjs
Windows 上建议带 PATH 前缀以保证 pnpm 可用。
典型用法¶
- 检查 Node 版本满足
node ^22.19.0 || >=24.0.0,并确认已安装官方dshCLI。 - 卸载旧版:
dsh plugin --profile web remove dsh-plugin-hub
- 克隆本仓库,并执行:
dsh plugin --profile web add file:<本仓库绝对路径>
- 重启
dsh web,在浏览器中Ctrl+F5刷新。 - 如需修改插件落盘位置,在设置页或全局 DSH 设置中修改「插件安装目录」;留空保存会恢复默认。
适用场景与注意¶
适合需要稳定使用 DSH web 插件商店的开发者,尤其是以下几类情况:
- 希望插件下载目录可配置,而不是固定使用默认目录。
- 需要避免 bundle 层入口 id 冲突导致插件树异常。
- 终端
PATH中没有pnpm,但仍希望安装链路可继续。 - 需要更明确的“重启生效”提示和启用超时错误。
注意:
- 不要与 registry 版的
dsh-plugin-hub同时安装。两者插入相同的 loader 入口 id,会导致插件树崩溃。 - bundles 层插件只在启动时组合。安装后需要重启
dsh,不视为热加载。 - 插件会运行在当前
dsh进程中。安装前应检查源码、许可证和依赖,确认其功能与权限可接受。 - npm 包尚未发布,当前可复现的方式是
file:克隆安装或补丁安装。 - 本仓库是社区定制版。社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系,不应作为官方应用商店理解。
结尾¶
harness-plugin-store-optimized 把 dsh-plugin-hub 0.1.6 的几个安装痛点整理成更明确的链路:下载目录可配置、bundle 层冲突可检测、pnpm 寻路可回退、重启提示更准确,并修复了已列出的上游 bug。
GitHub 仓库:
https://github.com/yiqizhuapangxiema/harness-plugin-store-optimized
目录页 URL 未在已核实资料中给出。