Issue Type
Incorrect information
Document Location
extensions/vscode/src/extension/services/CliService.ts
Description
环境信息
系统:Windows 11
VS Code 版本:(填写你的版本)
插件版本:open-code-review-vscode 0.1.1
Node.js:v24.14.0(官方安装包,PATH 配置正常)
问题:
在vs code插件中的模型配置页的环境检测中,Node.js 能正常检测到(显示 v24.14.0),但 npm 一项显示"未通过:未检测到 npm"。
实际上 npm 已正常安装,在 VS Code 内置终端和系统终端中执行 npm --version 均正常输出版本号。
原因:
Windows 上 node 是 node.exe,而 npm 是 npm.cmd 批处理脚本。插件 out/extension.js 中的 probeCommand 使用 child_process.spawn 时未设置 shell: true:
// 环境检测(npm 检测失败的位置)
spawn(resolveBin(e), t, { env: getShellEnv() })
Node.js 的 spawn 在不启用 shell 时无法直接执行 .cmd 文件,会触发 error 事件(ENOENT),导致 npm 检测被误判为失败。node 因为是 .exe 所以能检测通过,这也解释了为何两者结果不一致。
值得注意的是,插件的 install 方法中已经正确处理了该问题(shell: "win32" === process.platform),但以下两处遗漏了:
probeCommand(环境检测,导致 npm / ocr CLI 均无法被识别)
runRaw(实际执行审查命令,即使跳过检测,Windows 下运行审查也会失败)
Suggested Change
将probeCommand和runRaw的 spawn 调用统一加上 shell 参数,与 install 方法保持一致:
spawn(resolveBin(e), t, {
env: getShellEnv(),
shell: process.platform === "win32"
})
Issue Type
Incorrect information
Document Location
extensions/vscode/src/extension/services/CliService.ts
Description
环境信息
系统:Windows 11
VS Code 版本:(填写你的版本)
插件版本:open-code-review-vscode 0.1.1
Node.js:v24.14.0(官方安装包,PATH 配置正常)
问题:
在vs code插件中的模型配置页的环境检测中,Node.js 能正常检测到(显示 v24.14.0),但 npm 一项显示"未通过:未检测到 npm"。
实际上 npm 已正常安装,在 VS Code 内置终端和系统终端中执行 npm --version 均正常输出版本号。
原因:
Windows 上 node 是 node.exe,而 npm 是 npm.cmd 批处理脚本。插件 out/extension.js 中的 probeCommand 使用 child_process.spawn 时未设置 shell: true:
// 环境检测(npm 检测失败的位置)
spawn(resolveBin(e), t, { env: getShellEnv() })
Node.js 的 spawn 在不启用 shell 时无法直接执行 .cmd 文件,会触发 error 事件(ENOENT),导致 npm 检测被误判为失败。node 因为是 .exe 所以能检测通过,这也解释了为何两者结果不一致。
值得注意的是,插件的 install 方法中已经正确处理了该问题(shell: "win32" === process.platform),但以下两处遗漏了:
probeCommand(环境检测,导致 npm / ocr CLI 均无法被识别)
runRaw(实际执行审查命令,即使跳过检测,Windows 下运行审查也会失败)
Suggested Change
将probeCommand和runRaw的 spawn 调用统一加上 shell 参数,与 install 方法保持一致:
spawn(resolveBin(e), t, {
env: getShellEnv(),
shell: process.platform === "win32"
})