A federação de módulos permite especificar módulos compartilhados e a deduplicação de dependências entre micro frontends. Com a versão 2.0, a federação de módulos evoluiu para funcionar de forma independente do webpack. Esta atualização introduz funcionalidades importantes, incluindo um runtime próprio, uma nova API de plugins e suporte para frameworks populares como React e Angular, além de empacotadores conhecidos, como Rspack e Vite. Ao adotar a federação de módulos, grandes aplicações web podem ser divididas em micro frontends menores e mais gerenciáveis, permitindo que diferentes equipes desenvolvam, implantem e escalem de forma independente, enquanto compartilham dependências e componentes de maneira eficiente.
O lançamento da funcionalidade Webpack 5 Module Federation foi muito aguardado por pessoas desenvolvedoras de arquiteturas de micro frontends. A funcionalidade apresenta uma maneira mais padronizada de otimizar a forma como as dependências de módulo e o código compartilhado são gerenciados e carregados. A funcionalidade de module federation permite a especificação de módulos compartilhados, o que ajuda na redução de duplicação de dependências entre micro front-ends, carregando o código usado por vários módulos apenas uma vez. Também permite distinguir entre módulos locais e remotos, quando os módulos remotos não são realmente parte do build em si, mas carregados de forma assíncrona. Comparado às dependências de tempo de compilação, como pacotes npm, isso pode simplificar significativamente a implantação de uma atualização de módulo com muitas dependências downstream. Esteja ciente, porém, que isso requer que você empacote todos os seus micro front-ends com o Webpack, ao contrário de abordagens como import maps, que podem eventualmente se tornar parte do padrão W3C.
