nodebb 搜索不到插件问题排查

问题描述

nodebb 插件管理中,搜索不到升级后的插件 nodebb-plugin-newyear-niuniu,如图

 

分析定位

通过源码分析,可以看到 nodebb 搜索插件 调用的是/api/admin/extend/plugins 接口,/api/admin/extend/plugins 又调用了官方接口 https://packages.nodebb.org/api/v1/plugins?version={nodebbversion};

  1.  version < 1.13.4

 当version小于 1.13.4的时候,获取不到 nodebb-plugin-newyear-niuniu 插件,

 

 

  1. version >= 1.13.4

当version小于 1.13.4的时候,可以获取到 nodebb-plugin-newyear-niuniu 插件

 

 

可以看到,搜索结果和version 相关,一通查询后,找到了该api项目的源码nodebb-package-manager

getPlugins时,先根据nodebb 的version 从系统缓存中获取,缓存中没有,再去redis中根据"packages:{version}"获取对应的插件包,如果没有版本号,则通过"packages" 获取所有插件

 

结合上面 version < 1.13.4时,获取不到该插件,说明redis中 "packages:1.13.3" 等符合条件的key中,没有该插件,由此需要定位redis数据写入的问题

项目中通过定时任务的方式,sync npm 上的package,sync后的包,根据nodebb的version进行存储,versions通过 https://api.github.com/repos/nodebb/nodebb/tags?per_page=100000 获取,

解析后的versions如下,这就解释了为什么1.13.4以下获取不到升级后的插件

[
  '1.17.0', '1.16.2',
  '1.16.1', '1.16.0',
  '1.15.5', '1.15.4',
  '1.15.3', '1.15.2',
  '1.15.1', '1.15.0',
  '1.14.3', '1.14.2',
  '1.14.1', '1.14.0',
  '1.13.4'
]

 

 

 

那为什么github的api没有返回所有的tag呢?

官方文档 有两个参数,per_page,page,而nodebb-package-manager 只使用的per_page参数,而per_page的max是100,这样就导致获取不到我们想要的tags

通过加page参数验证以上,如图,可以获取到1.13.0

到这里,用我的中式英语给大佬提了个issue,希望他能快点改了

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值