webui icon indicating copy to clipboard operation
webui copied to clipboard

Update market.ts: 是否考虑修改一下插件市场的机制?

Open VincentZyu233 opened this issue 9 months ago • 4 comments

Image

如图,用淘宝的npm镜像api 搜索 含有"koishi-plugin-"的npm包

https://registry.npmmirror.com/-/v1/search?text=koishi-plugin-&size=50

搜索50条,耗时224ms

考虑一下 把这件事情 放在koishi实例本地做? 用来代替现有的插件市场镜像? 或者说 考虑作为一个可选项,实验性功能,可以切换,

VincentZyu233 avatar Mar 01 '25 19:03 VincentZyu233

之前就是本地做的,但是插件市场过大,一共 2000+ 插件,并且每个插件必须获取具体信息才能确定是否显示,相当于 2000 多次请求,会直接把 npm 干到 429……

shigma avatar Mar 03 '25 13:03 shigma

之前就是本地做的,但是插件市场过大,一共 2000+ 插件,并且每个插件必须获取具体信息才能确定是否显示,相当于 2000 多次请求,会直接把 npm 干到 429……

sokka,明白了,就是说 每个插件还需要单独请求一下详细信息,

🤔那这样是否可行,在market插件设置中 新增两个 实验性配置项:

  1. string:自定义npm镜像源(提供淘宝npm镜像源的预设)
  2. boolean:不加载每个插件的具体信息

并明确告知用户 2.boolean为true的后果: 显示不了每个插件的详细信息,但是同时可以带来插件市场更快的加载速度,以及koishi启动的时候不需要等待market响应完毕

这样是否是一个折中的方案?

我想也许这样适用于这种情况:

  • 1.该用户在浏览插件市场的时候 可以接受 只看插件的name, description, keywords, 需要了解详细信息的时候再点进去
  • 2.该用户对于koishi开发 或者 koishi插件市场 已经有一定了解,已经记住了插件名称,想要加一点现成的插件直接开始用的,直接搜名字下载开用

🤔🤔🤔🤔🤔

VincentZyu233 avatar Aug 26 '25 02:08 VincentZyu233

上文已经提到了,要请求详细信息才能得知是否应当在插件市场内显示。

每个插件还需要单独请求一下详细信息

显示插件的详细信息本身就是插件市场的存在目的。如果有人接受只看插件的 name、description、keywords 的话,直接在 npm 上搜 koishi 就可以看到了,0 中转无添加,速度最快效果最好。对于已经记住了插件名称的人,直接在依赖管理页面添加对应包即可。换句话说,这两类人现在已经不需要 market 插件就可达到目的。


  • string:自定义npm镜像源(提供淘宝npm镜像源的预设)

market 插件配置中现在已有名为 registry.endpoint(现在在 npmRegistryServer)的配置用于自定义 npm 镜像源,且对于所有用户默认使用淘宝 npm 镜像源。换句话说,从任何地方安装的全新 Koishi 请求的 npm 服务默认就是淘宝 npm。

ilharp avatar Aug 26 '25 14:08 ilharp

话说能问问这个建议背后本身的需求吗?或者说,目前插件市场的非本地模式你觉得有什么问题吗?

shigma avatar Aug 27 '25 16:08 shigma