获取所有包含关键字的npm包

我想获得所有包含foo关键字的npm包。

如何使用NPM API? 我找不到任何文件。 可以用npm库来做吗?

你可以像这样使用npm包的searchfunction

 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