web-dev-qa-db-fra.com

Comment utiliser angular 6 in ionic 3?

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?

6
Amr ElAdawy

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"
  }
2
Amr ElAdawy

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.

1
alex351