节点查看是否已安装程序

时间:2017-05-19 09:08:42

标签: node.js ffmpeg

您好我正在制作一个需要ffmpeg, node-acoutstid with fpcalc and eye3D的节点应用。 现在我的问题是如何看看这些'节目'安装在客户机上。

最好的检查方法是什么?

1 个答案:

答案 0 :(得分:2)

“掏空”以进行本机检测

在macOS / Linux / bash中,我们通常使用type -pcommand -v(如果做错了,则使用which)。

在Windows中,您可以像where一样使用where node.exe

require('child_process').exec('type -p mything', function (err, stdout) {
  console.log(stdout);
});

如果您不想跨平台兼容并且不必担心清理用户输入,那么这种幼稚的方法就可以工作。

使用command-exists

npm上有一个软件包command-exists。我偷看了一下代码,看起来它可能是最简单的跨平台检测,可以覆盖小尺寸的边缘情况:

https://github.com/mathisonian/command-exists/blob/master/lib/command-exists.js

var commandExists = require('command-exists');

// invoked without a callback, it returns a promise
commandExists('ls').then(function (command) {
  // proceed
}).catch(function () {
  // command doesn't exist
});