资源重试插件用于在资源加载失败时进行重试,以增加资源加载的成功率。在 Module Federation 中我们提供重试插件 RetryPlugin
来增加资源重试机制,这对于远程应用的加载来说可提高应用的稳定性。
资源重试插件是由@module-federation/retry-plugin
包提供的,我们先来安装它
RetryPlugin
为运行时插件,我们可以通过构建插件的 runtimePlugin
注册此插件或在运行时进行插件注册,并配置重试参数和重试逻辑等:
注意
需要重试的资源分为两种类型:fetch 类型和 script 类型,这两种资源类型我们分别通过 fetch
参数和 script
参数进行重试逻辑控制。
RetryPluginParams
是用于配置 RetryPlugin
的参数类型,包含了两种资源类型的重试选项:fetch
和 script
。
fetch: FetchWithRetryOptions
(可选)
script: ScriptWithRetryOptions
(可选)
url:
string
options:
RequestInit
retryTimes:
number
retryDelay:
number
fallback:
() => string
retryTimes:
number
retryDelay:
number
moduleName:
Array<string>
cb:
(resolve: (value: unknown) => void, error: any) => void
完整的配置可参考如下配置: