shared
用于在消费者和生产间共享公共依赖,降低运行时下载体积从而提升性能,shared
可以配置依赖版本的复用规则,可以通过 FAQ 了解 shared
适用场景以及如何使用 shared
PluginSharedOptions
undefined
PluginSharedOptions
类型如下:
boolean
true
是否在共享作用域中只允许共享模块的一个版本 (单例模式).
string
require('project/package.json')[devDeps | dep]['depName']
所需版本,可以是一个版本区间。默认值为当前应用的依赖版本。
eager
设置为 true 后,会将共享依赖打包到入口文件,从而导致入口文件体积过大。请谨慎开启。
boolean
false
是否立即加载共享模块。
正常情况下,需要开启异步入口,随后按需异步加载 shared 。 若想使用 shared ,但又不想开启异步入口,那么可以设置 eager
为 true 。
string
'default'
共享依赖作用域,默认值为 'default'
。
跨项目消费模块往往会碰到重复依赖加载、依赖单例限制等问题,这些问题可以通过设置 shared
来解决。
lodash.get
react
lodash
(未按需引用)antd
那么此时可以在 shared 配置中添加对应的依赖。
根据使用场景,Module Federation
支持两种形式配置共享依赖,分别是 数组、对象。前者适用于大部分场景,后者适用于复杂的定制需求。
数组格式(通用场景)
仅需在 Module Federation
构建配置中的 shared
配置添加对应的依赖即可,例如:
对象格式(定制化配置)
在 Module Federation Plugin
中的 shared
配置添加需要共享的依赖, key
为依赖名称,value
为提供的配置。