Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Migração Angular 7 para Angular 16

Pessoal, Depois de muita batalha, consegui finalmente realizar a migração (ou parte dela) de um projeto em Angular 7 para o 16, seguindo guide oficial (https://update.angular.io/). Havia um problema no projeto original, que usava uma lib chamada node-sass, que por sua vez precisava de do node-gyp e de uma versão específica do python instalado na máquina, que também precisava de um complicador c++, etc. Foi tenso, acabei tirando essa lib do projeto e as coisas começaram a andar. E fui pulando de versão para versão. Acontece que estou num momento agora em que quando rodo o build do projeto, um monte de erro pipoca, ou seja, não foi automaticamente resolvido com o lint ou com o migrations das etapas.

Alguém conhece uma maneira de rodar um comando (não estou tendo êxito com o ESlint) que consiga resolver boa parte dos problemas que apareceram? Coisas bobas, do tipo:

1 import { RequestOptions, Http, ResponseContentType } from '@angular/http'; ~~~~~~~~~~~~~~~ Error: src/app/shared/shared.module.ts:33:5 - error NG6002: 'TreeTableModule' does not appear to be an NgModule class.

Sei que algumas alterações não vai ter jeito, vou precisar fazer na mão, mas não entendo porque nos updates, o angular não fez alguns fixes automaticamente. Alguns ele fez de boa. Existem também esses problemas com a Ivy:

This likely means that the library (primeng/treetable) which declares TreeTableModule is not compatible with Angular Ivy. Check if a newer version of the library is available, and update if so. Also consider checking with the library's authors to see if the library is expected to be compatible with Ivy.

Sei que o fórum é dedicado a tirar dúvidas de curso, mas como sou aluno da alura e estudei angular aqui, imaginei que alguém pudesse me ajudar a resolver esse problema.

Desde já, agradeço!

2 respostas
solução!

Oi Leandro, tudo bem?

Parabéns por conseguir migrar parte do seu projeto Angular 7 para a versão 16! Migrar entre grandes versões do Angular pode exigir alguns esforços e ajustes, e é comum encontrar problemas e erros ao longo do caminho.

No caso dos erros que você mencionou, parece que alguns módulos e bibliotecas não são compatíveis com o Angular Ivy, o novo mecanismo de renderização introduzido no Angular 9. Quando você vê o erro "does not appear to be an NgModule class" ou mensagens relacionadas à compatibilidade com o Ivy, geralmente significa que a biblioteca em questão precisa ser atualizada para uma versão mais recente que seja compatível com o Ivy.

Aqui estão algumas sugestões para lidar com os erros:

  1. Verifique se há atualizações das bibliotecas: Verifique se há versões mais recentes das bibliotecas que você está usando em seu projeto. Visite os sites oficiais ou repositórios do GitHub dessas bibliotecas para ver se há informações sobre a compatibilidade com o Angular Ivy. Se houver uma versão compatível com o Ivy, atualize a biblioteca no seu projeto.

  2. Entre em contato com as pessoas que usam a biblioteca, no discord do Angular. Eles poderão fornecer orientações sobre como lidar com o problema, no discord tem um canal chamado Help onde as pessoas postam o seus problemas e recebem ajuda. É uma ótima maneira de fazer networking também.

  3. Analise manualmente os erros restantes: Para os erros que não podem ser resolvidos automaticamente ou com as sugestões acima, pode ser necessário analisar manualmente o código afetado e fazer as alterações necessárias. Os erros podem ser causados por alterações de sintaxe, APIs obsoletas ou outros problemas específicos do seu projeto.

Infelizmente, não há um comando único que possa resolver automaticamente todos os problemas de migração entre versões do Angular. Cada projeto é único e pode exigir ajustes personalizados. A documentação oficial do Angular e os recursos da comunidade podem ser úteis para encontrar soluções específicas para os erros que você está enfrentando.

Lembre-se de fazer backup do seu código antes de realizar qualquer alteração significativa e considere testar as alterações em um ambiente separado para garantir que tudo funcione corretamente antes de aplicá-las ao seu projeto principal.

Um abraço e bons estudos.

Obrigado Lorena pelo seu tempo e pela orientação ! Vcs são top! Forte abraço.