Koishi 控制台持续更新贴

20230516 更新:将 market 插件拆分为 market 和 config 两个插件,版本均为 2.0.0-alpha.0。

先解释一下为什么做此拆分:

  1. 开发模式下运行时,启动的 market 插件会从网上自动同步所有插件的信息,这一方面会降低控制台启动的速度,另一方面如果遇到不好的网络环境,会输出大量错误信息,影响开发;将插件配置功能单独拆分将允许开发者不启动 market 插件。
  2. 过去的插件配置功能依赖于扫描整个 node_modules 目录下的所有插件并逐一加载,这不仅降低了 Koishi 启动速度,如果部分插件未开发完成,同样会输出大量错误信息;提供按需加载的方案可以解决此问题,但过去的 market 插件已经过于复杂,不方便修改了。

新版本下的 config 插件负责「插件配置」页面;而 market 插件基于 config 插件,负责「插件市场」和「依赖管理」页面。此外,config 插件加入了按需加载的机制,不再会在启动时加载 node_modules 中的全部插件了(仍然会扫描目录结构,只是不加载)。

其他在本次更新中需要同步更新的插件:

  • console / client:提供了本次更新所需的 <k-slot> 新特性
  • commands / gocqhttp:适配了新版本的 config 插槽

注:新版本中我们仍然保留了兼容性代码,因此只更新 commands / gocqhttp 不更新 market / config 不会导致任何问题,目前只有 market / config 处于不稳定的 alpha 阶段。

额外说明:按需加载机制避免了插件一经下载就被运行,这看起来似乎有益于解决不安全问题(如 boom 插件)和占用问题(如 petpet 插件),但实际上插件页面在被点击时仍然会进行加载,因此不能认为此次更新解决了这两个问题。

3 个赞