获取所有包含关键字的npm包
我想获得所有包含foo
关键字的npm包。
如何使用NPM API? 我找不到任何文件。 可以用npm
库来做吗?
你可以像这样使用npm
包的search
function
var npm = require("npm"); npm.load({}, function () { npm.commands.search("foo", true, function (err, result) { if (err) { throw new Error(err); } console.log(Object.keys(result)); }); });
它返回foo
关键字的355
对象。
我们传递给search
函数的callback函数将接收一个对象,关键字是包名称和值是关于包的信息。 引用文档,
返回一个对象,其中的每个键都是包的名称,值是关于该包的信息以及“words”属性,该属性是该包中所有有趣单词的空格分隔的string。 所包含的唯一属性是那些被search的属性,通常包括:
- 名称
- 描述
- 维护者
- url
- 关键字
注意:传递给search
函数的第二个参数( true
)是为了防止函数在stdout上打印结果。 基本上它启用了静音模式。
您也可以使用多个关键字来限制search,方法是将数组传递给search
函数
npm.commands.search(["foo", "bar"], true, function (err, result) {
只返回39个对象。
我没有依赖庞大的npm
模块,而是为了这个确切目的做了一个小模块: npm-keyword
。