микро
Главный разработчик в Иннотех
Если над проектом работает один разработчик или одна команда
НЕЗАЧЕМ
Если параллельно работают
несколько команд, тогда есть плюсы:
Есть одно НО, о котором нужно помнить.
У микрофронтендов нет полной изоляции: общий DOM и CSS, события, event loop, адресная строка.
Host - микрофронт, который загружается первым и может подключать модули из других микрофронтов.
Remote - микрофронт, который предоставляет модули, но так же как и Host, может подключать модули из других Remote.
new webpack.container.ModuleFederationPlugin({
name: 'app1',
filename: 'remoteEntry.js',
exposes: {
'./Button': './src/components/Button.js',
},
shared: {
react: { singleton: true },
'react-dom': { singleton: true },
},
}),
new webpack.container.ModuleFederationPlugin({
name: 'host',
remotes: {
app1: 'app1@http://localhost:3001/remoteEntry.js',
app2: 'app2@http://localhost:3002/remoteEntry.js',
},
shared: {
react: { singleton: true, eager: true },
'react-dom': { singleton: true, eager: true },
},
}),
import React, { Suspense } from "react";
const RemoteButton = React.lazy(() => import("app1/Button"));
const App = () => {
return (
)
}
Видео про микрофронтенды:
Примеры кода:
Дополнения для Webpack Module Federation:
Альтернативные реализации Module Federation: