Replies: 1 comment
|
这条与我们此前记录的 #6341 是同一根因,你的实测正好补上了那个窗口的中间一段——也说明报错里"Node 24"这个标签容易读得过宽。 API 的可用窗口是
我在本机 Node 24.20.0 上复核过: 顺着这一点,有一个比你我表述都更尖锐的问题:声明范围自己包含了不可用的版本。 仓库根 "engines": { "node": "^22.19.0 || >=24.0.0" }
工具侧我已经把这条签名做成了检查( 关于临时修法:改 shebang 指向 Node 25 是有效的,但它是逐次安装的—— |
Uh oh!
There was an error while loading. Please reload this page.
环境
@deepseek-ai/dsh@0.1.5-rc.1package.json没有engines字段现象
dsh web、dsh --profile web、dsh --version全部静默退出(exit 0、零 stdout、零 stderr)。3080 端口从未 listen,
~/.dsh也不会创建,看起来"什么也没发生"。根因
lib/bin.js末行用if (import.meta.main) await runCli();判定是否入口。import.meta.main在 Node 24 上是undefined(该 API 在 22.x 一直 experimental,24 已移除),条件恒为 falsy,
runCli()永不执行。实测:在
lib/bin.js顶部加console.error("main=" + import.meta.main),然后以该文件为入口:import.meta.mainundefined✗true✓(本机 Node 22 因
libsimdjson.30.dylib缺失跑不起来,未直接验证 v22;但官方 v22 文档里有该 API。)临时修法:把 bin.js 顶部 shebang 改成绝对路径指向能用的 Node(Node 25)。改完后
dsh --version正常输出0.1.5-rc.1,dsh web起来,3080 监听正常。复现
期望
非 0 退出码 + 一行明确错误,例如:
哪怕只是一行
Error: failed to start; open an issue at ...也比现在的静默退出强。建议
package.json加engines("node": ">=20 <24"或迁到可移植判断)if (import.meta.main)失败时给用户明确诊断(至少console.error一下)可移植替代(供参考)
All reactions