您好我正在制作一个节点应用程序,需要:ffmpeg,node-acoutstid与fpcalc和eye3D. 现在我的问题是如何看到客户端机器上是否安装了这些“程序”. 什么是检查这个的最好方法? 用于本机检测的
现在我的问题是如何看到客户端机器上是否安装了这些“程序”.
什么是检查这个的最好方法?
用于本机检测的“ shell out”在macOS / Linux / bash中,我们通常使用类型-p或命令-v(或者如果你做错了,那么).
在Windows中,您可以使用node.exe之类的地方.
require('child_process').exec('type -p mything', function (err, stdout) { console.log(stdout); });
如果您不想尝试跨平台兼容并且不必担心消毒用户输入,那么这种天真的方法就可以工作.
使用命令存在
在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 });