Skip to content

加载器 (Loader) 实验性

WARNING

这是一个实验性 API,未来可能会发生变化。

WARNING

此服务仅在 CLI (启动器 / 模板项目) 环境下可用,作为依赖调用 的 Koishi 将不具备此服务。

Loader 服务可用于管理 Koishi 实例加载的插件。通常情况下你不需要手动调用此服务,除非你在开发 config 或者 HMR 这样的底层插件。

Instance Properties

ctx.loader.envData

  • Type: object

一个特殊的对象,可以在环境变量中存储少量数据。可以配合 ctx.loader.fullReload() 方法使用,以便在重启后恢复数据。

WARNING

如果你的插件需要持久化大量数据,请使用本地文件或者数据库。

实例方法

ctx.loader.keyFor(plugin)

  • plugin: any 插件导出
  • 返回值: string

获取插件的短名称。

ctx.loader.replace(plugin1, plugin2)

  • plugin1: any 插件导出
  • plugin2: any 插件导出

替换插件导出。

ctx.loader.resolve(name)

  • name: string 插件的短名称

从短名称获取插件。

ctx.loader.reload(parent, key, config)

  • parent: Context 父级上下文
  • key: string 插件的短名称
  • config: object 插件配置
  • 返回值: Promise<ForkScope>

启用一个插件。这里的 key 对应于 配置文件 中的键名。

如果 key 已经存在于父级上下文中,则会重载该插件实例;如果 key 不存在于父级上下文中,则会创建一个新的插件实例。

ctx.loader.unload(parent, key)

  • parent: Context 父级上下文
  • key: string 插件的短名称

停用一个插件。这里的 key 对应于 配置文件 中的键名。

ctx.loader.fullReload()

重启被守护的 Koishi 进程。