您好我正在制作一个需要ffmpeg, node-acoutstid with fpcalc and eye3D
的节点应用。
现在我的问题是如何看看这些'节目'安装在客户机上。
最好的检查方法是什么?
答案 0 :(得分:2)
在macOS / Linux / bash中,我们通常使用type -p
或command -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
});