
另一个常见的需求是搜索某个npm包,获取返回的信息,类似上图
npm 官方没有对外的api,但是有封装好的npm包,
https://github.com/npm/cli/tree/latest/workspaces/libnpmsearch
这个npm包基于另一个npm包,
GitHub - npm/npm-registry-fetch: like fetch() but for the npm registry
后者是npm几个工具包的基础,封装了npm请求api相关的方法,有兴趣可以看下
于search包同级的还有很多包,例如access,fund,hook等
详见:https://github.com/npm/cli/tree/latest/workspaces

封装了search相关的方法,传入包名即可,
默认limit了3条返回,按流行度排序,也可以自己传入options
- 'use strict';
-
- var q = require('qiao-npms');
-
- var test = async function(){
- try{
- var packageName = 'qiao-cos';
- var res = await q.searchPackages(packageName);
- console.log(res);
- }catch(e){
- console.log(e);
- }
- };
-
- test();
return
- [
- {
- name: 'qiao-cos',
- scope: 'unscoped',
- version: '0.4.3',
- description: 'tencent cos upload tool on nodejs',
- keywords: [ 'tencent', 'cos', 'upload', 'tool', 'nodejs' ],
- date: 2022-06-13T08:06:26.354Z,
- links: {
- npm: 'https://www.npmjs.com/package/qiao-cos',
- homepage: 'https://github.com/uikoo9/qiao-monorepo/tree/master/packages/qiao-cos#readme',
- repository: 'https://github.com/uikoo9/qiao-monorepo',
- bugs: 'https://github.com/uikoo9/qiao-monorepo/issues'
- },
- author: { name: 'uikoo9', email: 'uikoo9@qq.com' },
- publisher: { username: 'npm_insistime', email: 'npm@insistime.com' },
- maintainers: [ [Object] ]
- }
- ]
qiao-npms,还封装了获取某个包的下载量方法,
详见:qiao-npms:获取npm包下载量_uikoo9的博客-CSDN博客
1.qiao-npms,搜索npm包信息
2.qiao-npms,获取包下载量