Pembaruan & solusi yang tepat untuk memperbaikinya
Berdasarkan jawaban dari Tran Quang , saya mengunjungi CHANGELOG.md of ionic-native
dan mengetahui bahwa mereka baru saja memperbarui paket mereka untuk dikompilasi dengan Angular 9.
Karenanya Anda perlu memperbarui semua / semua dependensi dari @ionic-native
. Untuk ini, lihat semua dependensi dalam package.gson
file Anda yang dimulai dengan @ionic-native/
dan perbarui satu per satu.
Sebagai contoh, ini adalah milik saya package.gson
:
Jadi saya harus menjalankan perintah berikut untuk memperbarui semua @ionic-native
dependensi saya :
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
Sama yang harus Anda lakukan untuk @ionic-native
dependensi Anda . Pastikan saja, pembaruan tersebut minimum untuk v5.21.5
(karena beberapa rilis lama tidak berfungsi).
Ceria 😀🎉🎊
Jika karena alasan tertentu, Anda tidak dapat memperbarui @ionic-native
dependensi Anda , lihat jawaban asli saya untuk solusi / solusi yang berbeda ⬇️
Jawaban Asli
Bagi saya, solusi berikut berhasil. Tidak yakin apakah mereka sempurna untuk ditambahkan tetapi berharap tim Ionic akan memperbaikinya karena solusi ini tidak diperlukan ketika saya meningkatkan aplikasi Angular saya menjadi Angular 9.
Solusi 1
Matikan AOT dengan mengubah "aot": true
ke "aot: false
dalam angular.json
file. Saya tidak akan merekomendasikan ini karena ini meningkatkan kinerja aplikasi Angular dan meningkatkan penangkapan kode kesalahan dalam mode pengembangan.
Solusi 2
Jika Anda tidak ingin mengubahnya angular.json
dan hanya ingin memperbaiki masalah ini ionic serve
, berikan --aot=false
flag to ng
command dengan menggunakan --
:
ionic serve -- --aot=false
Solusi 3 (opsi buta)
Jika tidak ada solusi di atas yang berfungsi untuk Anda, Anda dapat menjalankan perintah npm update
yang akan memperbarui semua dependensi dari Andapackage.json
(artinya, dependensi ionik juga akan diperbarui).
Ini adalah opsi buta karena Anda tidak akan memiliki gagasan tentang dependensi mana yang diperbarui dan perubahan apa yang melanggar pada dependensi yang diperbarui tersebut. Jadi, Anda mungkin akhirnya memperbaiki masalah lain karena ini.
Jadi terserah Anda untuk mengambil risiko ini :) Yah, ini layak dilakukan jika aplikasi Anda tidak sebesar itu atau tidak menggunakan kode apa pun yang dihapus dalam dependensi yang lebih baru.
Solusi 4 (opsi terakhir & terburuk)
Menambahkan import '@angular/compiler';
dalam main.ts
berkas. Tapi ini mungkin meningkatkan ukuran bundel.
Tambahan
Sementara upgrade Ionic, Anda mungkin menghadapi masalah lain karena salah import
dalam polyfills.ts
. Jika ya, periksa src / zone-flags.ts hilang dari kompilasi TypeScript setelah memutakhirkan ke Ionic 5