Проверяет понимание способов интеграции микрофронтендов в хост-приложение и их попадания в итоговую сборку.
Микрофронтенды — это архитектурный подход, при котором большое фронтенд-приложение разбивается на несколько независимо разрабатываемых и деплоимых частей. Ключевой вопрос: как хост-приложение (shell) узнаёт о микрофронтендах и включает их в свою сборку или загружает во время работы.
В конфигурации Webpack хост объявляет удалённые модули, а микрофронтенд — что он экспортирует.
// webpack.config.js хоста
new ModuleFederationPlugin({
remotes: {
products: 'products@http://localhost:3001/remoteEntry.js'
}
});
// webpack.config.js микрофронтенда
new ModuleFederationPlugin({
name: 'products',
filename: 'remoteEntry.js',
exposes: {
'./ProductList': './src/ProductList'
}
});
// Использование в хосте
const ProductList = React.lazy(() => import('products/ProductList'));При build-time всё включается в один бандл на этапе компиляции. При runtime хост не содержит код микрофронтенда — он лишь ссылается на remoteEntry.js, который загружается в браузере. Это позволяет деплоить микрофронтенды независимо, без пересборки хоста.
Итог: build-time проще, но связывает релизы; runtime через Module Federation даёт независимость деплоя и подходит для крупных команд, тогда как iframe и script-теги применяют для изоляции или legacy-систем.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию