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
Untuk Angular: Menghentikan terminal dan melayani kembali itu
ng serve
memecahkan masalah bagi saya.sumber
Mencoba
ng serve --aot
, ini membantu saya memperbaiki masalah, itu jika Anda ingin menjalankan dengan aot yang direkomendasikan karena akan mirip dengan build produksi dan itu akan membantu Anda menangkap kesalahan lebih cepat.Semoga ini membantu.
Tautan Sudut: https://angular.io/guide/aot-compiler
sumber
Karena pembaruan ionik tidak cukup cepat, Anda dapat mencoba:
npm i @ionic-native/status-bar@beta @ionic-native/splash-screen@beta @ionic-native/core@beta -S
bekerja untuk saya.perbarui 2020/02/18 => kita dapat menjalankan
npm i @ionic-native/status-bar @ionic-native/splash-screen @ionic-native/core -S
sekarang untuk mendapatkan versi stabil terbarusumber
perlu memperbarui ion juga, itu akan berhasil. Untuk sudut ketika memperbarui versi pembaruan itu semua tergantung itu sendiri. Tetapi dalam ion perlu memperbarui secara manual.
sumber
Menjalankan
npm update
memperbaiki masalah untuk saya.sumber
npm update
secara harfiah akan memperbarui setiap & setiap ketergantungan dan Anda tidak akan memiliki gagasan tentang apa yang diperbarui & yang lainnya. Itu juga bisa menyebabkan kesalahan lain.