# Experiments
`experiments` 配置用于启用插件中的实验功能。
- Example
```ts
new ModuleFederationPlugin({
name: '@demo/host',
experiments: {
asyncStartup: true,
externalRuntime: false,
provideExternalRuntime: false
},
shared: {
react: {
singleton: true,
},
'react-dom': {
singleton: true,
},
},
//...
});
```
## asyncStartup
- Type: `boolean`
- Required: No
- Default: `false`
启用 `asyncStartup` 后,所有 {props.name || 'Module Federation'} 入口将默认以异步方式初始化。这意味着:
- 无需在应用顶部手动添加 `import()` 语句(例如 `import('./bootstrap')`)
- 所有入口都会自动处理异步初始化
- 通过自动的异步处理机制防止 "eager consumption" 错误
:::warning
使用此模式时,所有入口都将异步初始化。如果你手动 require 一个打包后的入口或导出 UMD 库,它将返回一个 promise 来解析导出内容。
:::
## externalRuntime
- Type: `boolean`
- Required: No
- Default: `false`
设置 `true` 后 会 external MF runtime,并使用消费者提供的 runtime 。(请确保你的消费者有设置 `provideExternalRuntime: true`,否则无法正常运行!)
## provideExternalRuntime
- Type: `boolean`
- Required: No
- Default: `false`
::: warning 注意
请确保仅在最顶层消费者配置!若同时有多个消费者注入 runtime,后执行的不会覆盖已有的 runtime。
:::
设置 `true` 后会在消费者处注入 MF runtime。