dsh-super-injector 使用指南
DSH 生态的"模组注入器":免重启把任意本地插件包加载到运行中的 web,含热重载/自重载/一键卸载/路由自愈/侧挂区与设置页插件管理 UI。
本文为派生内容(基于 wiki / faq / compatibility_json 自动组装),非 AI 即时创作。
本文由本站基于该插件已收录的字段自动派生(wiki / faq / compatibility_json / readme),非 AI 即时创作。每节末尾标源字段。
快速上手
dsh-super-injector
— 源: plugin_wiki.wiki_content
安装与验证
dsh plugin --profile web add --allow-build=@dsh-external/dsh-super-injector github:yjh051108/dsh-super-injector
复制以上命令在 DSH Web Profile 内运行。安装完成后在「插件列表」启用即可。
— 源: plugins.install
关键要点
-
- id: dsh-super-injector
- 不硬编码 DSH 版本:peerDependencies 全部为范围声明
- 已适配服务改名:
webServer(原 httpServer)、compaction(原 compact)。 - 🔥 热重载 + 自重载:
dev_reload_package整包重载(清缓存 → 重新 import → 重建 fiber,失败回滚保留旧代);注入器自身也支持自重载(自杀 → 全局定时器重建) - 🤖 自动 watch:注入即自动监听插件目录,改代码 build 后约 1.5 秒自动重载(无需手动触发)
— 源: plugin_wiki.readme_zh (fallback readme_raw)
常见问题
装好之后看不到 dev_ 工具怎么办?*
先确认注入器已通过官方装配路径(dsh plugin --profile web add 或 cordis.patch.yml)生效、对应 web profile 已重启,再对 agent 说 dev_plugin_status——若列表里没有 dsh-super-injector,多半是装到了非运行 profile(INSTALL.md:170-178)。
注入一个 UI 形态插件报 "client ✗" 怎么排查?
若插件本来就没声明 dsh.client.platform,会显示"跳过",这是预期。若显示"注册失败",说明缺 lib/client.js 或 client bundle 不是 tsdown 产物;需要 npm run build:client 单独构建 client bundle,注入器会在注入前自动阻断(src/index.ts:2406-2422 / INSTALL.md:176)。
dev_reload_package 报"重载目标命中注入器自身"被拒绝?
注入器拒绝普通路径下的自毁——必须用 dev_reload_package 匹配名中带 dsh-super-injector(走自重载分支),且两次自重载间隔必须 ≥10 秒,否则会被节流拦下(src/index.ts:656 / src/index.ts:1135-1142)。
web 启动报 "duplicate loader entry id" 崩溃怎么修?
在解压目录里跑 node scripts/fix-patch.mjs(或在已起的环境里用 dev_fix_patch),按 id 去重并自动备份原文件;dsh loader 严格要求同 id 仅一条(INSTALL.md:107-132 / src/index.ts:2539-2598)。
Windows 上构建报 "找不到 bash" 或 WSL 报错?
注入器主动拒绝 WSL 的 System32\bash.exe(System32 抢先 PATH 时会启动失败),需要装 Git for Windows / PortableGit 并把 Git\bin 加到 PATH;Windows 链接用 NTFS junction 而非符号链接(src/index.ts:83-85 / src/index.ts:2749-2767)。
注入的插件重启后还在吗?
在。注入清单持久化到 ~/.dsh/super-injector/registry.json,下次装配时 autoRestore 默认开启,自动按清单逐个重新注入;侧挂转正的工具也持久化在 staging.json(src/index.ts:502-522 / src/index.ts:1429-1489)。
怎么彻底卸载注入器?
dsh plugin --profile web remove @yjh051108/dsh-super-injector,再清理 cordis.patch.yml 里相关条目(保持单一顶层数组)、删 profile node_modules 链接、可选删 ~/.dsh/super-injector/ 目录;重启后 dev_* 工具消失即卸载完成(INSTALL.md:182-199)。
scaffold 出来的骨架能直接注入吗?
可以,但需要先 dev_build_plugin 在 DSH_CHECKOUT 环境下构建出 lib/;骨架已强制 ctx.effect 注册规范与 peerDependencies 范围声明,client 形态还会校验 slots.register 的合法 slot 名(src/index.ts:2838-2851 / docs/SPEC.md:142-151)。
— 源: plugin_wiki.faq_json
兼容性
- DSH: 0.1.0-rc.6+(peerDependencies 范围声明 @deepseek-ai/dsh-tools >=0.0.1-rc <2,DSH 升级不需改插件)
- Node: 未声明
- Platforms: macOS, Windows, Linux
— 源: plugin_wiki.compatibility_json
踩坑提醒
安装前请审阅上游仓库;本指南基于已收录字段自动派生,可能滞后于最新版本。如发现与官方文档冲突,请以上游为准。
— 来源:通用规则