import { defineConfig } from '@rsbuild/core';
import { ModuleFederationPlugin } from '@module-federation/enhanced/rspack';
export default defineConfig({
// 使用 manifest 必须要配置 publicPath
dev: {
assetPrefix: 'http://localhost:2000/',
},
output: {
// 这将影响生产环境中使用的产物路径前缀
assetPrefix: 'https://cdn.domain.com/path/to/project/',
},
server: {
port: 2000,
},
tools: {
rspack: (config, { appendPlugins }) => {
// 需要设置一个唯一值不能和其他应用相等
config.output!.uniqueName = 'federation_provider';
appendPlugins([
new ModuleFederationPlugin({
name: 'federation_provider',
exposes: {
'./button': './src/button.tsx',
},
shared: ['react', 'react-dom'],
}),
]);
},
},
});