问题描述
PromptHub 桌面端(v0.5.8)的 CLI 安装页面显示"未安装",但 @prompthub/cli 实际上已正确全局安装且可正常使用。
环境
- OS: Windows
- PromptHub 桌面端: v0.5.8
- CLI: 0.5.8-beta.3 (已全局安装)
- npm prefix:
D:\npm-global(用户自定义,非默认路径)
证据
| 检查项 |
结果 |
npm config get prefix |
D:\npm-global |
npm list -g @prompthub/cli |
@prompthub/cli@0.5.8 ✅ |
prompthub --version |
0.5.8-beta.3 ✅ 正常 |
where prompthub |
D:\npm-global\prompthub ✅ 在 PATH 中 |
| 桌面端 CLI 检测页 |
❌ 显示"未安装" |
推测根因
桌面端检测 CLI 的机制存在以下可能的问题之一:
- 硬编码默认 npm 路径:只检查
C:\Users\<user>\AppData\Roaming\npm,不读取 npm config get prefix 的实际值。
- 依赖 npx 检测:
@prompthub/cli 并未发布到公共 npm registry(npm view @prompthub/cli 返回 404),导致 npx @prompthub/cli --version 必然失败。
- 子进程未继承用户 PATH:Electron spawn 的子进程可能没有加载用户 PATH,找不到自定义 prefix 目录下的二进制文件。
建议修复方向
检测 CLI 时应优先通过 npm root -g 获取实际全局安装路径,然后检查该目录下是否存在 @prompthub/cli,而不是:
- 硬编码默认 npm 路径
- 依赖 npx 去 registry 查包
临时解决方法
用户已在 D:\npm-global 正确安装了 CLI,shell 中正常工作。桌面端可考虑:
- 或提供一个"手动指定 CLI 路径"的配置项
- 或在检测失败时显示已安装的路径供用户确认
问题描述
PromptHub 桌面端(v0.5.8)的 CLI 安装页面显示"未安装",但
@prompthub/cli实际上已正确全局安装且可正常使用。环境
D:\npm-global(用户自定义,非默认路径)证据
npm config get prefixD:\npm-globalnpm list -g @prompthub/cli@prompthub/cli@0.5.8✅prompthub --version0.5.8-beta.3✅ 正常where prompthubD:\npm-global\prompthub✅ 在 PATH 中推测根因
桌面端检测 CLI 的机制存在以下可能的问题之一:
C:\Users\<user>\AppData\Roaming\npm,不读取npm config get prefix的实际值。@prompthub/cli并未发布到公共 npm registry(npm view @prompthub/cli返回 404),导致npx @prompthub/cli --version必然失败。建议修复方向
检测 CLI 时应优先通过
npm root -g获取实际全局安装路径,然后检查该目录下是否存在@prompthub/cli,而不是:临时解决方法
用户已在
D:\npm-global正确安装了 CLI,shell 中正常工作。桌面端可考虑: