跳到主内容

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

踩坑提醒

安装前请审阅上游仓库;本指南基于已收录字段自动派生,可能滞后于最新版本。如发现与官方文档冲突,请以上游为准。

— 来源:通用规则