J'ai une application Ionic 3 sur Angular 5.2. J'essaie de passer à la version angulaire 6. J'ai déjà suivi le guide de mise à niveau pour les variables HttpClient
et NgModule
. Le problème que j'ai maintenant est avec le ionic-native
.
J'ai installé ionic-native
V5 qui utilise rxjs
v6 (requis par angular6 et incompatible avec les versions précédentes).
Voici mon fichier app.module.ts
import { Device } from '@ionic-native/device/ngx';
import { IonicApp, IonicErrorHandler, IonicModule } from 'ionic-angular'
import { BrowserModule } from '@angular/platform-browser'
import { HttpClientModule } from '@angular/common/http'
@NgModule({
declarations: [
MyApp,
],
imports: [
BrowserModule,
HttpClientModule,
IonicModule.forRoot(MyApp),
IonicStorageModule.forRoot(),
],
bootstrap: [IonicApp],
entryComponents: [
MyApp
],
providers: [
Device
]
})
export class AppModule { }
Je reçois de multiples erreurs
Impossible de trouver le nom 'Device'
Argument de type '{declarations: (typeof MyApp) []; imports: (ModuleWithProviders | typeof HttpClientModule | typeo ... 'n'est pas assignable au paramètre de type' NgModule '. Les types de propriété' fournisseurs 'sont incompatibles. Fournisseur [] '. Le type' DeviceOriginal 'n'est pas assignable au type' Fournisseur '. Le type' DeviceOriginal 'n'est pas assignable au type' Fournisseur '. Le type' DeviceOriginal 'n'est pas assignable au type' ClassProvider '. La propriété' fournit 'est manquante dans le type' DeviceOriginal '.
La question est: ionic 3 peut-il déjà fonctionner avec angular 6?
Jusqu'ici, la seule chose qui fonctionnait était de conserver ionic-native
dans la version 4.10.0
et d'installer également rxjs-compat
.
Je pense qu'il est trop tôt pour aller plus loin. Voici le package.json
"dependencies": {
"@angular/common": ">=6.0.9",
"@angular/compiler": ">=6.0.9",
"@angular/compiler-cli": ">=6.0.9",
"@angular/core": ">=6.0.9",
"@angular/forms": ">=6.0.9",
"@angular/http": ">=6.0.9",
"@angular/platform-browser": ">=6.0.9",
"@angular/platform-browser-dynamic": ">=6.0.9",
"@angular/pwa": ">=0.6.8",
"@angular/service-worker": ">=6.0.9",
"@ionic-native/core": ">=4.10.0",
"ionic-angular": ">=3.9.2",
"purify-css": ">=1.2.5",
"rxjs": "^6.2.2",
"rxjs-compat": ">=6.2.2",
"zone.js": ">=0.8.26"
}
Comme le suggère un message publié sur les forums Ionic, Ionic 3.x n'est pas testé avec Angular 6.x et n'est donc pas officiellement pris en charge.
https://forum.ionicframework.com/t/upgrading-to-angular-6/131121/5
Mieux vaut attendre et mettre à jour Ionic 4.x à mon avis.