treeShakingSharedPlugins

允许用户显式指定哪些插件应该参与 shared 模块的第二次 treeshaking 过程。

  • 类型:string[]
  • 是否必填:否
  • 默认值:undefined

如果设置了 shared.treeShaking.mode 为 'server-calc',那么在部署服务中,会重新构建需要 tree shaking 的共享依赖,此时仅构建共享依赖,不会加载原项目的构建配置。 如果你的项目有特殊的构建配置,例如设置了 externals ,那么你可以把这些构建配置集成到一个 NPM Package ,然后在 treeShakingSharedPlugins 中填写此插件的名称和版本,这样就可以在第二次 treeshaking 过程中参与 shared 模块的 treeshaking 过程。

例如提供了一个插件 my-build-plugin,它会设置 externals

my-build-plugin
class MyBuildPlugin {
  apply(compiler){
    compiler.options.externals = {
      'react': 'React',
    }
  }
}
export default MyBuildPlugin;

将此插件发布的版本为 0.0.2 ,那么此时只需要在 treeShakingSharedPlugins 中填写插件的名称和版本即可:

module-federation.config.ts

export default {
  // ...
  treeShakingSharedPlugins: ['my-build-plugin@0.0.2'],
}