nzl153/dsh-preflight

nzl153★ 0TypeScript最后同步: 2026-08-15

在 GitHub 打开

DSH 插件安装前预演冲突、出问题后读日志定位根因,并给出可直接执行的修复命令。

README 摘要

dsh-preflight English 中文 装了个插件,DSH 起不来了。日志刷出几十行插件加载失败,看着像全坏了——真正的原因可能只是两个插件抢了同一个 entry id。 dsh-preflight 就是为这种事写的: - 装之前 ,把候选插件下载下来,跟你当前 profile 对撞一遍,告诉你会不会出事 - 出事之后 ,读 DSH 的日志,把满屏连锁报错还原成一句根因 两种情况它都会把该敲的命令直接打出来,但 不替你敲 。工具自己不动手,才敢去下载和解析陌生插件的产物。 安全边界:只下载并解包候选产物,静态解析 JSON/YAML 和源码文本。不安装插件、不执行候选代码或 install scripts、不改动 DSH profile。网络候选写进 mkdtemp 临时目录,用完即删。 它回答的是「已实现的规则有没有发现问题」,不提供安全性证明,也没有 daemon 和后台自动修复。 要求 - Windows 优先;Node.js 22.19 或更高版本 - 默认 DSH 安装根: E:\dsh (用 --dsh-root 或环境变量 DSH ROOT 覆盖) - 默认 profile: %USERPROFILE%\.dsh\profiles\web - 设置 DSH HOME 可覆盖 .dsh 根目录 使用 explain 默认读取 DSH 安装根下的 dsh.err.log 、 dsh.log 、 dsh.restart.log 和 launch-trace.log 。每个文件只读取尾部 2 MiB。日志不存在或为空时正常返回 INFO。 常用参数: - --profile :profile 名,默认 web - --profile-dir :直接指定 profile 目录 - --dsh-root :覆盖 DSH 安装根 - --dsh-home :覆盖 .dsh 根目录 - --registry :覆盖 npm registry - --log : explain 只分析指定日志 - --json :输出机器可读 JSON - --strict :存在 WARN 时也返回退出码 1 检查项 Finding 级别 含义 : ENTRY ID COLLISION BLOCK 候选 entry id 已被现有 bundle 使用 UNRESOLVABLE AFTER INSTALL BLOCK / UNKNOWN 安装后仍无法证明 insert[].name 可解析 CONFIG OVERRIDE SILENT WARN profile 后置层会整段替换候选同 id 的 config SERVICE PROVIDER DUPLICATE WARN / UNKNOWN 显式 service 重复,或 manifest 信息不足 MISSING B…

在 GitHub 查看完整 README →
终端/TUIclideepseek-harnessdependency-conflictsdiagnosticsdshdsh-pluginnodejspreflight

分类