我想获取包含foo
关键字的所有npm个包。
使用NPM api怎么可能?我找不到任何关于此的文档。可以使用npm
库吗?
答案 0 :(得分:1)
您可以使用npm
package's search
功能,例如
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));
});
});
它返回355
关键字的foo
个对象。
我们传递给search
函数的回调函数将接收一个对象,其中键是包名称,值是有关包的信息。引用文档,
返回一个对象,其中每个键都是包的名称,值是关于该包的信息以及'单词' property,是一个以空格分隔的字符串,包含该包中所有有趣的单词。包括的唯一属性是搜索的属性,通常包括:
- 名称
- 描述
- 维护者
- URL
- 关键字
注意:传递给true
函数的第二个参数(search
)是为了防止函数在stdout上打印结果。基本上它启用了静音模式。
您还可以使用多个关键字限制搜索,方法是将数组传递给search
函数,如下所示
npm.commands.search(["foo", "bar"], true, function (err, result) {
只返回39个对象。
答案 1 :(得分:1)
我没有依赖巨大的npm
模块,而是为了这个目的制作了一个小模块:npm-keyword
。