我正在尝试使用 Rust
std::process::command
测试版本检查和其他功能。
其他命令工作正常,但当我尝试调用 npm -v
时,出现程序未找到错误。
我想要
npm -v
命令可使用 rust 运行
问题是
npm
不只是npm
,实际上有多个(脚本):
npm
npm.cmd
npm.ps1
当您在终端中执行
npm
时,您的终端就会变得智能并自动选择它识别的终端。同样,如果您(在 Windows 上)执行 foo
,它将自动运行 foo.exe
。
您可以通过将
"npm"
更改为 "npm.cmd"
来解决您的问题。为了让它对其他操作系统更加灵活,你可以使用这样的函数:
pub fn npm() -> Command {
#[cfg(windows)]
const NPM: &str = "npm.cmd";
#[cfg(not(windows))]
const NPM: &str = "npm";
Command::new(NPM)
}
然后您只需将
Command::new("npm")
替换为 npm()
。