Solution mise à jour et correcte pour résoudre ce problème
Sur la base de la réponse de Tran Quang , je suis allé voir le CHANGELOG.md de ionic-native
et est venu à savoir qu'ils ont récemment mis à jour leur package pour compiler avec 9 angulaire.
Par conséquent, vous devez mettre à jour toutes / toutes les dépendances de @ionic-native
. Pour cela, regardez toutes les dépendances de votre package.gson
fichier qui commencent par @ionic-native/
et mettez-les à jour une par une.
Par exemple, voici mon package.gson
:
J'ai donc dû exécuter les commandes suivantes pour mettre à jour toutes mes @ionic-native
dépendances:
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
Vous devez faire de même pour vos @ionic-native
dépendances. Assurez-vous simplement que ceux-ci sont mis à jour au minimum v5.21.5
(car certaines anciennes versions ne fonctionnaient pas).
Vive 😀🎉🎊
Si pour une raison quelconque, vous ne pouvez pas mettre à jour vos @ionic-native
dépendances, consultez ma réponse d'origine pour différentes solutions / solutions ⬇️
Réponse originale
Pour moi, les solutions suivantes ont fonctionné. Je ne sais pas s'ils sont parfaits à ajouter, mais j'espère que l'équipe Ionic corrigera ce problème car ces solutions n'étaient pas nécessaires lorsque j'ai mis à niveau mon application Angular ordinaire vers Angular 9.
Solution 1
Éteignez l'AOT en changeant "aot": true
à "aot: false
en angular.json
fichier. Je ne recommanderais pas cela car cela améliore les performances de l'application Angular et améliore la capture des codes d'erreur en mode développement.
Solution 2
Si vous ne souhaitez pas vous connecter angular.json
et souhaitez résoudre ce problème ionic serve
uniquement, passez l' --aot=false
indicateur à la ng
commande en utilisant --
:
ionic serve -- --aot=false
Solution 3 (option aveugle)
Si aucune des solutions ci-dessus ne fonctionne pour vous, vous pouvez exécuter une commande npm update
qui mettra à jour littéralement toutes les dépendances de votre package.json
(cela signifie que les dépendances ioniques seront également mises à jour).
Il s'agit d'une option aveugle, car vous ne saurez pas quelles sont les dépendances mises à jour et quelles sont les modifications de rupture dans ces dépendances mises à jour. Vous pourriez donc finir par résoudre d'autres problèmes à cause de cela.
Donc, c'est à vous de prendre ce risque :) Eh bien, cela vaut la peine de le faire si votre application n'est pas si grande ou n'utilise aucun code supprimé dans les nouvelles dépendances.
Solution 4 (la dernière et la pire option)
Ajouter import '@angular/compiler';
au main.ts
fichier. Mais cela pourrait augmenter la taille du bundle.
Supplémentaire
Lors de la mise à niveau d'Ionic, vous pourriez rencontrer un autre problème en raison d'une erreur import
dans polyfills.ts
. Si oui, consultez src / zone-flags.ts manquant dans la compilation TypeScript après la mise à niveau vers Ionic 5