Skip to content

插件架构

在Discuz !Q进行编译时,脚手架会对一个固定的文件位置进行读取,会自动识别标准的插件文件,并且会根据插件描述文件中指定的targethookName的字段,通过@discuzq/cli中内置的插件注入器,对插件代码进行注入到相应的页面中。

图片

插件的platform会在编译时,根据编译的模式,忽略非当前编译环境的插件,不会注入到代码中。

插件注册

Discuz !Q内置一个插件中心,负责将整个Discuz !Q使用的插件都会注册进插件中心中,提供整个Discuz !Q使用。插件中心对于插件注册有以下限制:

  • 同一个targethookName中,每个插件的名称是唯一的。
  • 如果在同一个targethookName中,出现同名插件,那么将会对比版本号,取最新的版本号插件进行存储。

图片

Discuz !Q插件中心,将以targethookName拼接作为作用域。

插件渲染

已经具备插件钩子的页面,在每次渲染的时候,都会向插件中心获取属于当前taget对应hookName的插件,并且进行渲染。

渲染时,由Discuz !Q团队对于每个hook传入固定的参数供插件使用。

Released under the MIT License.