Ionic 5 se anunció hace unas horas (12 de febrero de 2020) y actualicé mi aplicación de producción pequeña a Ionic 5 junto con Angular 9:
# To update to Ionic 5 npm install @ionic/angular@latest @ionic/angular-toolkit@latest --save-exact --save # To update to Angular 9 ng update @angular/core @angular/cli Pero cuando hice el ionic serve , comencé a recibir el siguiente error:
Error: Angular JIT compilation failed: '@angular/compiler' not loaded! - JIT compilation is discouraged for production use-cases! Consider AOT mode instead. - Did you bootstrap using '@angular/platform-browser-dynamic' or '@angular/platform-server'? - Alternatively provide the compiler with 'import "@angular/compiler";' before bootstrapping. at getCompilerFacade (core.js:610) at Function.get (core.js:16065) at getInjectableDef (core.js:362) at injectableDefOrInjectorDefFactory (core.js:16816)Encontré algunos problemas de Angular GitHub:
Están diciendo que incluyan import '@angular/compiler'; en el archivo main.ts pero cuando coincidí con una de mis otras aplicaciones Angular 9 (que actualicé recientemente), no veo tales configuraciones allí.
¿Angular 9 no es compatible con Ionic 5?
Pruebe ng serve --aot , me ayudó a solucionar el problema, es decir, si desea ejecutar con aot, que se recomienda, ya que será similar a la compilación de producción y lo ayudará a detectar errores antes.
Espero que esto ayude.
Enlace angular: https://angular.io/guide/aot-compiler
Debido a que la actualización iónica no es lo suficientemente rápida, puede probar: npm i @ionic-native/status-bar@beta @ionic-native/splash-screen@beta @ionic-native/core@beta -S funciona para mí.
actualización 2020/02/18 => podemos ejecutar npm i @ionic-native/status-bar @ionic-native/splash-screen @ionic-native/core -S ahora para obtener la última versión estable
Para Angular: detener el terminal y volver a servirlo ng serve resolvió el problema para mí.
necesita actualizar ionic también, funcionará. Para angular cuando se actualiza la versión, actualiza todos los dependientes. Pero en ionic necesita actualizar manualmente.
"@angular/common": "9.0.5", "@angular/core": "9.0.5", "@angular/forms": "9.0.5", "@angular/platform-browser": "9.0.5", "@angular/platform-browser-dynamic": "9.0.5", "@angular/router": "9.0.5", "@ckeditor/ckeditor5-angular": "1.2.2", "@ckeditor/ckeditor5-build-classic": "17.0.0", "@ionic-native/camera": "5.22.0", "@ionic-native/core": "5.22.0", "@ionic-native/crop": "5.22.0", "@ionic-native/device": "5.22.0", "@ionic-native/diagnostic": "5.22.0", "@ionic-native/document-viewer": "5.22.0", "@ionic-native/file": "5.22.0", "@ionic-native/file-opener": "5.22.0", "@ionic-native/file-path": "5.22.0", "@ionic-native/file-transfer": "5.22.0", "@ionic-native/fingerprint-aio": "5.22.0", "@ionic-native/image-picker": "5.22.0", "@ionic-native/in-app-browser": "5.22.0", "@ionic-native/network": "5.22.0", "@ionic-native/splash-screen": "5.22.0", "@ionic-native/status-bar": "5.22.0", "@ionic-native/toast": "5.22.0",Ejecutar npm update solucionó el problema.
Intenté varias formas, incluida npm update , sin éxito. La única forma en que pude hacer que Ionic 5 con Angular 9 funcionara en modo de producción fue configurando "aot": false y "buildOptimizer": false en angular.json.
En realidad, no había @ionic en mi archivo .json. Pero después de muchas inspecciones, descubrí que escribí algunos módulos de formularios angulares (Validator, FormGroup, FromControl) dentro de la importación de ngModule.
Y también usó el módulo de manera incorrecta, Ejemplo: en lugar de importar MatSnackBarModule, importe MatSnackBar en el archivo .ts de ese componente específico donde desea importar y de manera similar para otros módulos restantes, no los escriba con Módulo como sufijo.
pero importe MatSnackBarModule completamente en el archivo app.module.ts.
Nota: Lo expliqué anteriormente tomando MatSnackBar como ejemplo, implica también para cualquier otro módulo.