Soluzione aggiornata e corretta per risolvere questo problema
Sulla base della risposta di Tran Quang , sono andato a vedere CHANGELOG.md di ionic-native
e sono venuto a sapere che hanno recentemente aggiornato il loro pacchetto per compilare con Angular 9.
Quindi è necessario aggiornare qualsiasi / tutte le dipendenze di @ionic-native
. Per questo, guarda tutte le dipendenze nel tuo package.gson
file che iniziano con @ionic-native/
e aggiornale una per una.
Ad esempio, questo è il mio package.gson
:
Quindi ho dovuto eseguire i seguenti comandi per aggiornare tutte le mie @ionic-native
dipendenze:
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
Lo stesso devi fare per le tue @ionic-native
dipendenze. Assicurati solo che quelli siano aggiornati al minimo v5.21.5
(perché alcune vecchie versioni non funzionavano).
Saluti 😀🎉🎊
Se per qualche motivo, non puoi aggiornare le tue @ionic-native
dipendenze, guarda la mia risposta originale per soluzioni / soluzioni alternative ⬇️
Risposta originale
Per me, le seguenti soluzioni hanno funzionato. Non sono sicuro che siano perfetti da aggiungere, ma spero che il team Ionic lo risolva poiché queste soluzioni non erano necessarie quando ho aggiornato la mia semplice app Angular ad Angular 9.
Soluzione 1
Disattiva l'AOT passando "aot": true
a "aot: false
nel angular.json
file. Non lo consiglierei in quanto ciò migliora le prestazioni dell'app Angular e migliora la cattura dei codici di errore in modalità di sviluppo.
Soluzione 2
Se non si desidera cambiare angular.json
e si desidera risolvere solo questo problema ionic serve
, passare il --aot=false
flag al ng
comando utilizzando --
:
ionic serve -- --aot=false
Soluzione 3 (opzione cieca)
Se nessuna delle soluzioni sopra funziona per te, puoi eseguire un comando npm update
che aggiornerà letteralmente tutte le dipendenze dalla tua package.json
(ciò significa che anche le dipendenze ioniche verranno aggiornate).
Questa è un'opzione cieca perché non avrai idea di quali dipendenze vengono aggiornate e quali sono le modifiche di rottura in tali dipendenze aggiornate. Quindi potresti finire per risolvere altri problemi a causa di questo.
Quindi spetta a te correre questo rischio :) Bene, vale la pena farlo se la tua app non è così grande o non utilizza alcun codice che viene rimosso nelle dipendenze più recenti.
Soluzione 4 (l'ultima e la peggiore opzione)
Aggiungi import '@angular/compiler';
nel main.ts
file. Ma questo potrebbe aumentare le dimensioni del pacchetto.
Extra
Mentre l'aggiornamento ionica, si potrebbe affrontare un altro problema a causa di sbagliato import
in polyfills.ts
. Se sì, controlla src / zone-flags.ts mancante dalla compilazione TypeScript dopo l'aggiornamento a Ionic 5