อัปเดตและแก้ไขโซลูชันเพื่อแก้ไขปัญหานี้
ขึ้นอยู่กับคำตอบจากTran QuangผมไปดูCHANGELOG.mdของionic-native
และมารู้ว่าพวกเขาเพิ่งอัปเดตแพคเกจของพวกเขาไปรวบรวมกับเชิงมุม 9
ดังนั้นคุณจำเป็นต้องปรับปรุงใด ๆ / @ionic-native
อ้างอิงทั้งหมดของ สำหรับสิ่งนี้ดูการอ้างอิงทั้งหมดในpackage.gson
ไฟล์ของคุณซึ่งเริ่มต้นด้วย@ionic-native/
และอัปเดตทีละรายการ
ตัวอย่างเช่นนี่คือของฉันpackage.gson
:
ดังนั้นฉันต้องเรียกใช้คำสั่งต่อไปนี้เพื่ออัปเดตการ@ionic-native
อ้างอิงทั้งหมดของฉัน:
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
เช่นเดียวกับที่คุณต้องทำเพื่อการ@ionic-native
อ้างอิงของคุณ เพียงตรวจสอบให้แน่ใจว่าสิ่งเหล่านั้นได้รับการอัปเดตขั้นต่ำv5.21.5
เป็น
ไชโย😀🎉🎊
หากด้วยเหตุผลบางอย่างคุณไม่สามารถอัปเดตการ@ionic-native
อ้างอิงของคุณได้โปรดดูคำตอบดั้งเดิมของฉันสำหรับวิธีแก้ไขปัญหาต่าง ๆ / วิธีแก้ไข⬇️
คำตอบเดิม
สำหรับฉันแล้วโซลูชันต่อไปนี้ใช้ได้ผล ไม่แน่ใจว่าพวกเขาสมบูรณ์แบบในการเพิ่มหรือไม่ แต่หวังว่าทีม Ionic จะแก้ไขปัญหานี้เนื่องจากไม่จำเป็นต้องใช้โซลูชันเหล่านี้เมื่อฉันอัปเกรดแอปพลิเคชัน Angular ของฉันเป็น Angular 9
โซลูชันที่ 1
ปิด AOT โดยการเปลี่ยน"aot": true
ไป"aot: false
ในangular.json
ไฟล์ ฉันจะไม่แนะนำสิ่งนี้เนื่องจากจะช่วยเพิ่มประสิทธิภาพการทำงานของแอพเชิงมุมและปรับปรุงการจับรหัสข้อผิดพลาดในโหมดการพัฒนา
โซลูชันที่ 2
หากคุณไม่ต้องการเปลี่ยนangular.json
และต้องการแก้ไขปัญหานี้ionic serve
เพียงผ่าน--aot=false
แฟล็กไปยังng
คำสั่งโดยใช้--
:
ionic serve -- --aot=false
โซลูชันที่ 3 (ตัวเลือกที่ตาบอด)
หากไม่มีวิธีการแก้ปัญหาด้านบนที่ใช้งานได้สำหรับคุณคุณสามารถเรียกใช้คำสั่งnpm update
ซึ่งจะอัปเดตการอ้างอิงทั้งหมดจากตัวคุณเองpackage.json
(นั่นหมายถึงการพึ่งพาไอออนิกจะได้รับการอัปเดตด้วย)
นี่เป็นตัวเลือกที่ตาบอดเนื่องจากคุณจะไม่มีความคิดว่าการพึ่งพาใดที่ได้รับการปรับปรุงและสิ่งที่เป็นการเปลี่ยนแปลงที่ไม่แน่นอนในการพึ่งพาที่ได้รับการปรับปรุงเหล่านั้น ดังนั้นคุณอาจสิ้นสุดการแก้ไขปัญหาอื่น ๆ ด้วยเหตุนี้
ดังนั้นจึงขึ้นอยู่กับคุณที่จะรับความเสี่ยงนี้ :) นี่เป็นสิ่งที่ควรทำหากแอปของคุณไม่ใหญ่หรือไม่ใช้รหัสใด ๆ ซึ่งจะถูกลบในการอ้างอิงที่ใหม่กว่า
โซลูชันที่ 4 (ตัวเลือกสุดท้าย & ที่แย่ที่สุด)
เพิ่มimport '@angular/compiler';
ในmain.ts
ไฟล์ แต่นี่อาจเพิ่มขนาดชุดรวม
พิเศษ
ขณะที่การอัพเกรดไอออนิก, คุณอาจเผชิญปัญหาอื่นเพราะความผิดพลาดในimport
polyfills.ts
หากใช่ให้ตรวจสอบsrc / zone-flag.ts หายไปจากการรวบรวม TypeScript หลังจากอัพเกรดเป็น Ionic 5