插件系统
Module Federation 提供了一套轻量的运行时插件系统,用以实现自身的大多数功能,并允许用户进行扩展。
开发者编写的插件能够修改 Module Federation 的默认行为,并添加各类额外功能,包括但不限于:
- 获取上下文信息
- 注册生命周期钩子
- 修改 Module Federation 配置
- ...
开发插件
插件提供类似 () => ModuleFederationRuntimePlugin 的函数。
插件示例
custom-runtime-plugin.ts
注册插件(两种方式选择一种即可):
- 构建配置中注册插件
rspack.config.ts
- 运行时注册插件
插件结构
函数形式的插件可以 接受选项对象 并 返回插件实例,并通过闭包机制管理内部状态。
其中各部分的作用分别为:
name属性用于标注插件名称。fn各类钩子。
命名规范
插件的命名规范如下:
- 插件的函数通过 default 导出。
- 插件的
name采用xxx-plugin格式。
下面是一个例子: