Uma cópia para governar a todos: compartilhando bibliotecas de terceiros no NX Micro Frontends
Ao construir micro front-ends angular (MFEs), um dos maiores desafios é o gerenciamento de bibliotecas de terceiros. Estruturas como @angular/núcleo, kits de interface do usuário como @angular/material, ferramentas de gerenciamento de estado como @nGrx/store e bibliotecas de serviços públicos como o LODASH geralmente acabam repetidos em vários MFES. Sem o compartilhamento adequado, cada aplicativo agrupa sua própria cópia, levando a construções mais pesadas e gerenciamento de dependência mais complexo. NX With Webpack Module Federation nos fornece uma solução elegante: bibliotecas compartilhadas de singleton. O problema Imagine três MFES: Dashboard, Relatórios e Admin. {withmodulefederação} = requer (‘@nrwl/angular/módulo-federação’); Module.Exports = WithModuleFederação ({name: ‘Dashboard’, expõe: {‘./module’: ‘./apps/dashboard/src/app/remote-entry/entry.module.ts’,}, shared:@angular/core ‘: {singleton. ‘@angular/comum’: {singleton: true, strictversion: true, requeridaVersion: ’17 .0.0 ‘},’@angular/roteador ‘: {singleton: true, strictversion: true, requerido: ’17 .0.0’}, ‘@ngx/store’: {singleton: ’17. },},}); Digite o modo de saída do modo de tela cheia o que essas opções significam para singleton: true → garante que apenas uma instância da biblioteca exista em todos os MFEs. StrictVersion: True → aplica a mesma versão em todos os lugares, evitando bugs sutis de tempo de execução. Necessidade de inversão: ‘xyz’ → pin a versão que você espera, dando melhor controle sobre as atualizações. Vantagens da consistência das bibliotecas compartilhadas em MFES Cada micro front -end usa a mesma versão do Angular, NGRX ou LODASH. Não há mais surpresas de “trabalha aqui, mas não lá”. Atualizações de manutenção mais simples para bibliotecas de terceiros acontecem em um só lugar. As equipes não precisam alinhar manualmente as versões entre os MFEs. Complexidade reduzida Singletons compartilhados eliminam questões como vários injetores angulares ou lojas NGRX conflitantes. Experiência mais suave do desenvolvedor com o NX, as bibliotecas são definidas uma vez e reutilizadas em todos os lugares, tornando a configuração do projeto mais rápida e menos propensa a erros. Conclusão Ao configurar as bibliotecas de terceiros como singletons compartilhados, o NX torna os micro front-ends mais consistentes, sustentáveis e confiáveis. Em vez de manipular várias versões de bibliotecas angulares ou duplicadas, seus MFEs se comportam como partes de um sistema coesivo.
Fonte