1. Module Federation 2.0 相比 1.0 的运行时插件与共享依赖治理
Module Federation 2.0 相比 1.0 引入了哪些运行时能力?其 runtimePlugins 插件体系如何工作,在共享依赖治理上带来了哪些改进?
- MF 2.0 的 runtime 模块化架构与 1.0 打包期代码注入的差异
- runtimePlugins 钩子体系与插件生命周期
- 共享依赖的版本协商、回退与热更新的治理能力
Module Federation 2.0 的核心变化是把联邦运行时从「构建期代码模板注入」重构为「独立、可插拔的运行时包」。1.0 中 runtime 逻辑由 webpack 在编译期生成并内联进产物,难以替换和扩展;2.0 中 runtime 成为独立模块,可通过 runtimePlugins 在运行时加载插件,钩子覆盖 resolveShare、resolveSnapshot、beforeLoadShare、afterResolve、loadRemote 等关键节点,实现对共享依赖解析、远程模块加载的完全控制。在共享依赖治理上,2.0 通过 snapshot 机制记录依赖版本状态,插件可注入自定义的共享策略,例如按环境选择版本、动态降级到本地副本、注入监控与错误上报,从而把「版本协商」从黑盒变成可观测、可编排的治理点。
回答本题应抓住 1.0 与 2.0 的本质差异:前者是构建期固化的运行时,后者是运行时可编程的架构。先讲清楚插件钩子链,再落到共享依赖治理的具体收益(版本回退、动态选择、可观测性),体现从「机制」到「治理价值」的完整认知。