Aktualisierte und korrekte Lösung, um dies zu beheben
Basierend auf der Antwort von Tran Quang habe ich mir CHANGELOG.md von angesehen ionic-native
und erfahren, dass sie kürzlich ihr Paket aktualisiert haben, um es mit Angular 9 zu kompilieren.
Daher müssen Sie alle Abhängigkeiten von aktualisieren @ionic-native
. Sehen Sie sich dazu alle Abhängigkeiten in Ihrer package.gson
Datei an, die mit beginnen, @ionic-native/
und aktualisieren Sie sie nacheinander.
Zum Beispiel ist dies mein package.gson
:
Daher musste ich die folgenden Befehle ausführen, um alle meine @ionic-native
Abhängigkeiten zu aktualisieren :
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
Gleiches müssen Sie für Ihre @ionic-native
Abhängigkeiten tun . Stellen Sie nur sicher, dass diese mindestens auf aktualisiert werden v5.21.5
(da einige alte Versionen nicht funktionierten).
Prost 😀🎉🎊
Wenn Sie Ihre @ionic-native
Abhängigkeiten aus irgendeinem Grund nicht aktualisieren können , lesen Sie meine ursprüngliche Antwort für verschiedene Problemumgehungen / Lösungen
Ursprüngliche Antwort
Für mich haben die folgenden Lösungen funktioniert. Ich bin mir nicht sicher, ob sie perfekt zum Hinzufügen sind, hoffe aber, dass das Ionic-Team dies behebt, da diese Lösungen nicht benötigt wurden, als ich meine einfache Angular-App auf Angular 9 aktualisiert habe.
Lösung 1
Schalten Sie den AOT aus, indem Sie "aot": true
zu "aot: false
In- angular.json
Datei wechseln . Ich würde dies nicht empfehlen, da dies die Leistung der Angular-App verbessert und das Abfangen von Fehlercodes im Entwicklungsmodus verbessert.
Lösung 2
Wenn Sie sich nicht ändern möchten angular.json
und dieses Problem ionic serve
nur beheben möchten , übergeben Sie das --aot=false
Flag an den ng
Befehl, indem Sie Folgendes verwenden --
:
ionic serve -- --aot=false
Lösung 3 (blinde Option)
Wenn keine der oben genannten Lösungen für Sie funktioniert, können Sie einen Befehl ausführen, npm update
der buchstäblich alle Abhängigkeiten von Ihnen package.json
aktualisiert (dh, die ionischen Abhängigkeiten werden ebenfalls aktualisiert).
Dies ist eine blinde Option, da Sie nicht wissen, welche Abhängigkeiten aktualisiert werden und welche Änderungen in diesen aktualisierten Abhängigkeiten vorgenommen werden. Aus diesem Grund können Sie möglicherweise andere Probleme beheben.
Es liegt also an Ihnen, dieses Risiko einzugehen :) Nun, dies lohnt sich, wenn Ihre App nicht so groß ist oder keine Codes verwendet, die in den neueren Abhängigkeiten entfernt wurden.
Lösung 4 (die letzte und schlechteste Option)
Fügen Sie import '@angular/compiler';
in main.ts
Datei. Dies kann jedoch die Bündelgröße erhöhen.
Extra
Während Ionic aktualisieren, könnten Sie ein anderes Problem konfrontiert wegen falsch import
in polyfills.ts
. Wenn ja, überprüfen Sie, ob src / zone-flags.ts nach dem Upgrade auf Ionic 5 in der TypeScript-Kompilierung fehlt
Für Angular: Das Anhalten des Terminals und das erneute Servieren haben
ng serve
das Problem für mich gelöst.quelle
Versuchen Sie
ng serve --aot
, es hat mir geholfen, das Problem zu beheben. Wenn Sie mit aot arbeiten möchten, wird dies empfohlen, da es dem Produktions-Build ähnelt und Ihnen hilft, Fehler früher zu erkennen.Hoffe das hilft.
Angular Link: https://angular.io/guide/aot-compiler
quelle
Da das ionische Update nicht schnell genug ist, können Sie versuchen:
npm i @ionic-native/status-bar@beta @ionic-native/splash-screen@beta @ionic-native/core@beta -S
für mich arbeiten.Update 2020/02/18 => Wir können
npm i @ionic-native/status-bar @ionic-native/splash-screen @ionic-native/core -S
jetzt laufen , um die neueste stabile Version zu erhaltenquelle
müssen auch ionic aktualisieren, es wird funktionieren. Für eckige Update-Version werden alle abhängigen selbst aktualisiert. Aber in ionic müssen manuell aktualisiert werden.
quelle
Laufen hat
npm update
das Problem für mich behoben.quelle
npm update
buchstäblich jede Abhängigkeit aktualisiert wird und Sie keine Ahnung haben, was aktualisiert wird und was nicht. Das könnte auch zu anderen Fehlern führen.