Question
有没有一种简单的方法可以使用节点判断系统可执行文件在系统路径上是否可用?例如,如果用户安装了 python/usr/bin/python
and /usr/bin
is in $PATH
我如何在 Node 中检测到这一点?相反,检测某些内容未安装或不在路径上,即/usr/opt/local/mycustompath/python
?理想情况下希望他们有一个可用的 npm 包......
我确信这是一个使用正确搜索词的快速谷歌搜索,但由于“where”和“which”是非常通用的搜索词,所以我失败了。
背景
我正在为节点工具进行一些开发配置,并且希望能够检测 python(或 pip)是否已在路径上可用,如果没有,请用户告诉安装它或告诉我们在哪里可以找到它。我目前正计划这样做where
在 Windows 机器上和which
在 *nix 机器上,但希望可能有一种跨平台的方法来做到这一点。
零依赖+简单+愚蠢==????????
const { execSync } = require('child_process');
const shell = (cmd) => execSync(cmd, { encoding: 'utf8' });
function executableIsAvailable(name){
try{ shell(`which ${name}`); return true}
catch(error){return false}
}
// Then use it
executableIsAvailable('docker-compose') // true
executableIsAvailable('python') // true
executableIsAvailable('mvn') // false
假设这个时代没有人在windows中运行nodejs!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)