Zaktualizowane i poprawne rozwiązanie, aby to naprawić
Na podstawie odpowiedzi z Tran Quang , poszedłem zobaczyć CHANGELOG.md się ionic-native
i poznał, że niedawno zaktualizowany ich pakiet skompilować z kątowym 9.
Dlatego musisz zaktualizować dowolne / wszystkie zależności @ionic-native
. W tym celu przejrzyj wszystkie zależności w package.gson
pliku, które zaczynają się od, @ionic-native/
i aktualizuj je jeden po drugim.
Na przykład to moje package.gson
:
Musiałem więc uruchomić następujące polecenia, aby zaktualizować wszystkie moje @ionic-native
zależności:
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
To samo, co musisz zrobić dla swoich @ionic-native
zależności. Tylko upewnij się, że są one aktualizowane do minimum v5.21.5
(ponieważ kilka starych wersji nie działało).
Pozdrawiam 😀🎉🎊
Jeśli z jakiegoś powodu nie możesz zaktualizować swoich @ionic-native
zależności, spójrz na moją oryginalną odpowiedź na różne obejścia / rozwiązania ⬇️
Oryginalna odpowiedź
Dla mnie zadziałały następujące rozwiązania. Nie jestem pewien, czy są idealne do dodania, ale mam nadzieję, że zespół Ionic to naprawi, ponieważ te rozwiązania nie były potrzebne, gdy zaktualizowałem moją zwykłą aplikację Angular do Angular 9.
Rozwiązanie 1
Wyłącz AOT, zmieniając "aot": true
na "aot: false
w angular.json
pliku. Nie poleciłbym tego, ponieważ poprawia to wydajność aplikacji Angular i poprawia przechwytywanie kodów błędów w trybie programowania.
Rozwiązanie 2
Jeśli nie chcesz się zmieniać angular.json
i chcesz tylko rozwiązać ten problem ionic serve
, przekaż --aot=false
flagę do ng
polecenia, używając --
:
ionic serve -- --aot=false
Rozwiązanie 3 (opcja w ciemno)
Jeśli żadne z powyższych rozwiązań nie działa dla Ciebie, możesz uruchomić polecenie, npm update
które zaktualizuje dosłownie wszystkie zależności z twojego package.json
(to znaczy, że zależności jonowe również zostaną zaktualizowane).
Jest to opcja ślepa, ponieważ nie masz pojęcia, które zależności są aktualizowane i jakie są przełomowe zmiany w tych zaktualizowanych zależnościach. Dlatego możesz z tego powodu rozwiązać inne problemy.
Więc to od Ciebie zależy, czy podejmiesz to ryzyko :) Cóż, warto to zrobić, jeśli Twoja aplikacja nie jest tak duża lub nie używa żadnych kodów usuniętych w nowszych zależnościach.
Rozwiązanie 4 (ostatnia i najgorsza opcja)
Dodaj import '@angular/compiler';
w main.ts
pliku. Ale może to zwiększyć rozmiar pakietu.
Dodatkowy
Podczas uaktualniania jonowe, można zmierzyć się kolejny problem, ponieważ od zła import
w polyfills.ts
. Jeśli tak, sprawdź, czy po kompilacji TypeScript po aktualizacji do Ionic 5 brakuje src / zone-flags.ts.