🚀 Oferta especial: 60% OFF no CrazyStack - Últimas vagas!Garantir vaga →
React

Como configurar remotes e shared em Microfrontends React com Module Federation

Tudo que você precisa para integrar remotes e compartilhar dependências entre host e micro frontends com agilidade e sem erro.

CrazyStack
15 min de leitura
ReactMicrofrontendsModule FederationArquitetura FrontendTutorial

Por que isso é importante

Microfrontends potencializam equipes, aceleram entregas e isolam problemas. Mas sem a configuração e o compartilhamento corretos de dependências (shared), você arrisca bugs silenciosos, conflitos e retrabalho. Quem domina remotes e shared com Module Federation lidera a transformação digital no código e na cultura do time. E esse é exatamente o método que destrava arquitetura moderna em sistemas React de longa escala.

O segredo está na configuração dos remotes

Se perder um detalhe entre remotes e shared, o host não conversa com seus microfrontends. Basta um nome errado ou uma dependência não compartilhada para toda integração falhar. No Module Federation, o host define explicitamente quais remotes vai consumir e o que compartilha – e isso precisa ser SIMÉTRICO com seus microfrontends.

⚠️Atenção

Configurar remotes não é só colar a URL: cada remote precisa estar exposto pelo microfrontend certo e consumido na configuração do host. Analise o nome, evite conflitos e confira exposure no remote!

Caminho prático: importar, instanciar e configurar

Primeiro, importe o objeto ou função da biblioteca que implementa o Module Federation. No seu arquivo de configuração principal, faça a instanciação dele. Isso habilita o mecanismo que conecta módulos remotos e define o host como central do seu microfrontend.

ℹ️Dica Valiosa

Mantenha a configuração do host em um arquivo separado da configuração dos microfrontends. Isso simplifica debug em ambientes complexos.

Name, host e lista inicial

Defina o “name” do host. Adicione a propriedade “host” na configuração para torná-lo o centralizador dos remotes. Initialize a lista “shared” vazia ou já pronta para receber as dependências que serão sincronizadas entre host e remotes.

Hora da mágica: defina seus remotes

Dentro do array ou objeto “remotes”, cadastre todos os microfrontends que o host consumirá. Cada entrada precisa do nome lógico do remote (exemplo, Remote1) e a URL pública do microfrontend (exemplo, http://localhost:4173). Assim, o host sabe exatamente para onde buscar e carregar as partes da sua aplicação na hora certa.

⚠️Atenção

Não basta só expor o remote: o nome do remote no host deve bater com o nome definido como expose/export nos arquivos do microfrontend. Falhas aqui geram erros de carregamento ou shadow bugs.

Compartilhamento de dependências “shared”

A estabilidade de todo seu ecossistema depende do que você coloca em “shared”. Se React for compartilhado no remote, repita a configuração compartilhada do lado do host. Isso evita múltiplas instâncias carregando ao mesmo tempo e garante hooks e contexto global funcionando sem surpresa.

Evite dor de cabeça

Sempre mantenha as dependências core – como React, ReactDOM, Styled-Components – sincronizadas nas versões exatas entre host e remotes. Cheque, versionamento divergente quebra tudo.

Resumindo o fluxo completo

1. Importe o mecanismo Module Federation.
2. Instancie no host e defina o “name”.
3. Informe todos os remotes com o nome e URL pública do microfrontend.
4. Cadastre todas as dependências essenciais no shared tanto no host quanto em cada remote.
5. Teste local, valide imports no browser e monitore logs de integration.

Erros comuns e como evitar

O erro mais frequente é esquecer de compartilhar o React nas duas pontas. Também é fácil registrar o remote com nome divergente do que está no expose. Sempre confira nomes e versões. Falhou em acertar no shared? Hooks quebram e contextos não sincronizam.

Alerta Final

Não compartilhe dependências experimentais ou não-estáveis. Módulos diferentes precisam sempre ser compatíveis para que não surjam conflitos de estado global.

Dica Dev: debugging avançado

Utilize as devtools do navegador com network throttling para ver o carregamento dos remotes em tempo real. Comunique erros de integração pelo log central para todo o time enxergar e agir rápido.

Benefícios de um compartilhamento bem feito

Sua aplicação fica modular, escalável e menos sujeita a efeitos colaterais silenciosos. O time ganha autonomia de deploy sem medo de quebrar outros microfrontends. Módulo novo entra e sai do time sem acoplar nada monolítico.

Como evoluir para cenários enterprise

Com shared bem estruturado, adicione cache global, feature toggling e autenticação centralizada entre os hosts. Seu frontend cresce com governança simples e sem dor.

Checklist rápido antes de subir

- Conferiu nomes dos remotes?
- URLs batem com microfrontends?
- Shared alinhado e dependências versionadas?
- Testou integração e carregamento?
- Estado global funcionando entre todos os módulos?

Dev Doido recomenda

Quer entender casos reais, ver como bugs aparecem e pegar o repertório de quem já levou isso para produção? Assista os vídeos e lives do canal Dev Doido no YouTube (/DevDoido) e domine microfrontends na prática. Código sem enrolação.

Agora, aplique e jamais esqueça

Quem domina remotes e shared controla microfrontends sem dor, sem bugs, sem medo. Configure, revise e compartilhe esse conhecimento com seu time.

Domine React e Node com o CrazyStack

Aprenda técnicas avançadas de React com nosso curso completo