# treeShakingSharedPlugins
允许用户显式指定哪些插件应该参与 shared 模块的第二次 treeshaking 过程。
- 类型:`string[]`
- 是否必填:否
- 默认值:`undefined`
如果设置了 `shared.treeShaking.mode` 为 'server-calc',那么在部署服务中,会重新构建需要 tree shaking 的共享依赖,此时仅构建共享依赖,不会加载原项目的构建配置。
如果你的项目有特殊的构建配置,例如设置了 externals ,那么你可以把这些构建配置集成到一个 NPM Package ,然后在 `treeShakingSharedPlugins` 中填写此插件的名称和版本,这样就可以在第二次 treeshaking 过程中参与 shared 模块的 treeshaking 过程。
例如提供了一个插件 `my-build-plugin`,它会设置 `externals`:
```ts title='my-build-plugin'
class MyBuildPlugin {
apply(compiler){
compiler.options.externals = {
'react': 'React',
}
}
}
export default MyBuildPlugin;
```
将此插件发布的版本为 `0.0.2` ,那么此时只需要在 `treeShakingSharedPlugins` 中填写插件的名称和版本即可:
```ts title='module-federation.config.ts'
export default {
// ...
treeShakingSharedPlugins: ['my-build-plugin@0.0.2'],
}
```