Module Federation 2.0 выпустила стабильную версию, которая значительно расширяет свои возможности за пределами webpack. Эта версия важна для разработчиков, заинтересованных в micro-frontend архитектуре, так как повышает гибкость выбора инструментов и технологий.
Что нового в 2.0
Новая версия включает в себя динамические подсказки типов для TypeScript, отделение рабочего времени от инструментов сборки и поддержку Node.js. Команда разрабатывала этот релиз с учетом опыта ByteDance и в сотрудничестве с Заком Джексоном, создателем Module Federation.
Теперь, когда разработчики используют TypeScript, они могут автоматически загружать типы из удалённых модулей, что избавляет от необходимости сохранять отдельные пакеты с типами. Это значительно упрощает процесс разработки, как отметил Rowan Powell из Dunelm Technology, описывая новый функционал как «очень упрощённый». Теперь не нужно искать определения типов в нескольких файлах.
Широкая поддержка и интеграция
Module Federation 2.0 отделяет свою работу от конкретных инструментов сборки, что позволяет применять её с различными бандлерами, включая Rspack, Rollup и Vite. Это решает главную проблему: команды, колеблющиеся с принятием Module Federation из-за привязки к webpack, теперь могут без проблем интегрировать её в свои проекты.
Также в версии 2.0 добавлена поддержка Node.js, благодаря чему удалённые модули могут использоваться в серверных рендеринговых сервисах и Node микросервисах. Это создаёт единый подход к доставке модулей как на фронтенде, так и на бэкенде.
Практическое значение для разработчиков
Для команд, которые работают с micro-frontend архитектурой, обновление Module Federation 2.0 — это возможность улучшить процесс разработки. Интеграция и управление версиями становятся проще благодаря новому формату 'mf-manifest.json'. Использование Side Effect Scanner позволяет минимизировать риски при внедрении удалённых модулей.
Согласно реакциям в сообществе, многие разработчики положительно относятся к новым возможностям адаптации и интеграции в Chrome DevTools, хотя некоторые и выражают сомнение в сложности работы с этим инструментом по сравнению с другими подходами, такими как монорепозитории.
Следующим шагом команды, использующие Module Federation, могут ставить обновление с использованием плагина @module-federation/enhanced, что позволит им плавно перейти с версии 1.x.