'version-first' | 'loaded-first'
'version-first'
(由 webpack 插件/构建时运行时设置)控制共享依赖的加载策略:
'version-first'
:版本优先,确保使用最高版本的共享依赖。设置后,会在应用初始化时自动加载所有 remotes 入口文件,并注册对应的共享依赖,确保能获取到所有的共享依赖版本。当对版本有严格要求时,推荐使用此策略。
'loaded-first'
:复用优先,大幅减少多余的依赖请求。设置后,不会自动加载 remotes 入口文件(仅在有需求时才会加载),优先复用已加载的共享依赖。当对版本没有严格要求且对性能有要求时,推荐使用此策略。
'version-first'
策略会在应用启动时自动加载远程入口文件以初始化共享依赖。如果任何远程模块离线或无法访问,会在启动期间触发 errorLoadRemote
钩子,生命周期为 'beforeLoadShare'
。如果没有适当的错误处理,可能导致应用初始化失败。
'loaded-first'
策略将远程模块加载推迟到实际请求模块时,这意味着离线的远程模块只会在访问特定远程模块时导致失败,而不会在应用启动时失败。
version-first 遇到离线远程模块时的处理流程:
initializeSharing()
加载远程模块module.getEntry()
失败errorLoadRemote
钩子,生命周期为 'beforeLoadShare'
version-first 所需的错误处理:
对于可能存在网络问题的生产应用,建议:
'loaded-first'
策略以获得更好的弹性'beforeLoadShare'
生命周期实现全面的错误处理参见错误加载远程解决方案获取详细的离线处理策略。