Solução atualizada e correta para corrigir isso
Com base na resposta de Tran Quang , eu fui ver o CHANGELOG.md de ionic-native
e vim a saber que eles atualizado recentemente seu pacote para compilar com Angular 9.
Portanto, você precisa atualizar qualquer / todas as dependências de @ionic-native
. Para isso, observe todas as dependências do seu package.gson
arquivo que começam com @ionic-native/
e atualize-as uma a uma.
Por exemplo, este é o meu package.gson
:
Então, eu tive que executar os seguintes comandos para atualizar todas as minhas @ionic-native
dependências:
npm i @ionic-native/core@latest
npm i @ionic-native/camera@latest
npm i @ionic-native/firebase-x@latest
npm i @ionic-native/splash-screen@latest
npm i @ionic-native/status-bar@latest
O mesmo que você precisa fazer por suas @ionic-native
dependências. Apenas verifique se eles são atualizados no mínimo para v5.21.5
(porque alguns lançamentos antigos não estavam funcionando).
Saúde 😀🎉🎊
Se, por algum motivo, você não puder atualizar suas @ionic-native
dependências, consulte minha resposta original para obter diferentes soluções / soluções alternativas ⬇️
Resposta original
Para mim, as seguintes soluções funcionaram. Não tenho certeza se eles são perfeitos para adicionar, mas espero que a equipe Ionic resolva isso, pois essas soluções não eram necessárias quando eu atualizei meu aplicativo Angular simples para o Angular 9.
Solução 1
Desligue o AOT alterando "aot": true
para "aot: false
no angular.json
arquivo. Eu não recomendaria isso, pois isso melhora o desempenho do aplicativo Angular e melhora a captura de códigos de erro no modo de desenvolvimento.
Solução 2
Se você não deseja alterar angular.json
e deseja corrigir esse problema ionic serve
apenas, passe o --aot=false
sinalizador para o ng
comando usando --
:
ionic serve -- --aot=false
Solução 3 (opção cega)
Se nenhuma das soluções acima estiver funcionando para você, você pode executar um comando npm update
que atualizará literalmente todas as suas dependências package.json
(isto significa, as dependências iônicas também serão atualizadas).
Essa é uma opção cega, porque você não terá idéia de quais dependências são atualizadas e quais são as alterações mais recentes nessas dependências atualizadas. Portanto, você pode acabar corrigindo outros problemas por causa disso.
Portanto, é sua responsabilidade arriscar :) Bem, vale a pena fazer isso se seu aplicativo não for tão grande ou não usar códigos removidos nas dependências mais recentes.
Solução 4 (a última e a pior opção)
Adicionar import '@angular/compiler';
no main.ts
arquivo. Mas isso pode aumentar o tamanho do pacote.
Extra
Ao atualizar Ionic, você pode enfrentar outro problema por causa de errado import
em polyfills.ts
. Se sim, confira src / zone-flags.ts que está faltando na compilação TypeScript após a atualização para o Ionic 5
Para Angular: Parar o terminal e re-servi-lo
ng serve
resolveu o problema para mim.fonte
Tente
ng serve --aot
, isso me ajudou a resolver o problema, ou seja, se você deseja executar com o aot, o que é recomendado, pois será semelhante ao build de produção e ajudará a detectar erros mais rapidamente.Espero que isto ajude.
Link angular: https://angular.io/guide/aot-compiler
fonte
Devido à atualização iônica não ser rápida o suficiente, você pode tentar:
npm i @ionic-native/status-bar@beta @ionic-native/splash-screen@beta @ionic-native/core@beta -S
trabalhe para mim.update 2020/02/18 => podemos rodar
npm i @ionic-native/status-bar @ionic-native/splash-screen @ionic-native/core -S
agora para obter a última versão estávelfonte
precisa atualizar iônico também, ele vai funcionar. Para angular ao atualizar a versão, ele atualiza todos os dependentes. Mas na iônica precisa atualizar manualmente.
fonte
A execução
npm update
corrigiu o problema para mim.fonte
npm update
atualizará literalmente cada dependência, e você não terá uma idéia do que é atualizado e outros enfeites. Isso também pode levar a outros erros.