Replies: 3 comments 1 reply
|
这条信息里还缺一个最关键的东西:启动失败时报错信息的前几行。DSH 的加载失败一般会把出问题的 loader entry 和插件 id 直接写在里面,形如: 把这段贴出来基本就能定位类别。在你贴之前,升级后启动失败通常落在三类,可以按顺序自查: 1. 插件声明的 host 范围与新版 harness 不匹配
# 插件声明的范围
node -e "console.log(require('<profile>/node_modules/<plugin>/package.json').peerDependencies)"
# 实际安装的 host 版本
node -e "console.log(require('<DSH_HOME>/profiles/node_modules/@deepseek-ai/cordis/package.json').version)"典型症状是加载时报某个 host 包 API 不存在。想一条命令看完所有不兼容项: node doctor.mjs --profile ~/.dsh # peer_range 项直接列出「插件声明 / 已装版本 / 不兼容」2. profile 里固定的 bundle 还是旧版 升级 CLI 后,profile 的 dsh --profile <name> --dump-config若某层版本明显落后,重新解析一次(例如 3. 会话日志损坏也会阻断启动 和插件无关,但症状同样是「起不来」:会话日志的第一个 zstd 帧必须恰好一行 方便的话把这三样贴上来——错误头部、上面的 doctor 输出、 |
|
补一条更直接的恢复路径(在 @moonquake2004 刚发的 #6678 里): npx @moonquake2004/dsh-doctor --boot-check --profile web # 离线模拟加载,直接指出哪个 entry 失败
npx @moonquake2004/dsh-doctor --quarantine <pkg> --profile web # 把坏插件移出启动列表,dsh 先恢复可用我上面那条是「查清原因」,这两个命令是「先让 dsh 起来」。你现在卡在起不来,建议先用 |
|
接着 @ciceroyang 的方案补两条更直接的,因为"升级后启动失败"这个场景有两个特点:原因通常就写在报错行里,而要修的是"环境里到底变了什么"。 1. 那条报错行本身就能定类。 形如
2. "升级后"这三个字意味着还有一个可查的东西:变化本身。 如果之前记过基线, npx @moonquake2004/dsh-doctor --pre-upgrade --profile web # 升级前(下次升级前记得跑)
npx @moonquake2004/dsh-doctor --post-upgrade --profile web # 升级后:对比 + 逐条模拟加载没有基线也能用 3. 关于"先恢复"的一点安心话: 如果你把 |
Uh oh!
There was an error while loading. Please reload this page.
各种插件报错,是因为dsh 修改了插件加载方式的原因吗?
All reactions