experiments
配置用于启用插件中的实验功能。
enum
false
false | "hoisted"
Hoisted
Runtime当设置 federationRuntime: 'hoisted'
时,会发生以下情况:
这些配置可用于下列场景:
runtimeChunk: 'single'
。下面会详细解释对应的场景。
1)优化
原先 module-federation/runtime
会被加入到编译入口,这意味着在多 entry 的情况下会打包多次 mf runtime,会增大产物体积。
当设置了某些特定的分包策略,还会导致共享依赖 eager consumption
的问题。
并且 federationRuntime: 'hoisted'
还允许设置 runtimeChunk: "single"
。
2)异步启动
:::警告 此模式仍然允许设置异步入口。导出 UMD 库时,它会返回 Promise resolve 导出。 如果您手动 require() Node 中的入口点,它将 module.exports 设置为 Promise.resolve(exports)。 :::
入口启动将切换到“主动”初始化并使用异步依赖项启动。
你将不再需要强制的设置异步入口:“import('./bootsrtap')”
。
不再出现共享依赖 eager consumption
错误,因为文件本身的初始化表现为异步块。
与原先在入口挂载 MF runtime 不同,现在将会提升到 bundler runtime 初始化阶段挂载 MF runtime 。
这允许 MF runtime 提前可用,从而支持 “异步启动”(不再需要异步入口) 功能等。
boolean
false
设置 true
后 会 external MF runtime,并使用消费者提供的 runtime 。(请确保你的消费者有设置 provideExternalRuntime: true
,否则无法正常运行!)
boolean
false
请确保仅在最顶层消费者配置!若同时有多个消费者注入 runtime,后执行的不会覆盖已有的 runtime。
设置 true
后会在消费者处注入 MF runtime。