web-dev-qa-db-fra.com

La géolocalisation du plug-in natif Ionic 4 m'indique "Module introuvable: erreur: impossible de résoudre 'rxjs/Observable'"

J'essaie d'utiliser un plugin natif ionique geolocation dans ionic 4 mais j'ai l'erreur suivante:

Échec de la compilation.

./node_modules/@ionic-native/geolocation/index.js Module non trouvé: Erreur: Impossible de résoudre 'rxjs/Observable' dans 'C:\Projets\ioniques\priers\node_modules\@ ionic-native\géolocalisation'

ce sont mes dépendances:

"dependencies": {
    "@angular/common": "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/router": "6.0.9",
    "@ionic-native/core": "5.0.0-beta.14",
    "@ionic-native/geolocation": "^4.11.0",
    "@ionic-native/splash-screen": "5.0.0-beta.14",
    "@ionic-native/status-bar": "5.0.0-beta.14",
    "@ionic/angular": "4.0.0-beta.0",
    "@ionic/ng-toolkit": "1.0.0",
    "@ionic/schematics-angular": "1.0.1",
    "cordova-plugin-geolocation": "^4.0.1",
    "core-js": "^2.5.3",
    "rxjs": "6.2.2",
    "zone.js": "^0.8.26"
  },

c'est le code que j'ai utilisé: -

app.module.ts

import { Geolocation } from '@ionic-native/geolocation';
...
NgModule({
  declarations: [AppComponent],
  entryComponents: [],
  imports: [BrowserModule, IonicModule.forRoot(), AppRoutingModule],
  providers: [
    StatusBar,
    SplashScreen, Geolocation,
    { provide: RouteReuseStrategy, useClass: IonicRouteStrategy }
  ],
  bootstrap: [AppComponent]
})

home.ts

import { Geolocation } from '@ionic-native/geolocation';
...
constructor(private geolocation: Geolocation) {}
3
rami bin tahin

Vous avez installé rxjs 6.2.2 dans lequel les instructions d'importation sont modifiées.

Le natif ionique stable utilise toujours rxjs 5.x .

Vous pouvez consulter le guide de migration ici .

Vous pouvez soit utiliser rxjs-compat

npm i rxjs-compat --save

Ou retournez à la version 5.x.

Une autre option consiste à mettre à jour la version @ionic-native/geolocation vers 5.0.0-beta14

comme vos autres plugins ionic-native puisque selon le fichier package.json , il devrait utiliser rxjs 6.x

npm i --save @ionic-native/[email protected]
5
Suraj Rao

Je rencontrais le même problème et lors de la mise à niveau de Geolocation vers 5.0.0-beta.14, je devais également mettre à jour le chemin d'importation pour:

import { Geolocation } from "@ionic-native/geolocation/ngx";

OBS: Pour d’autres importations comme UniqueDeviceID, je devais également ajouter le suffixe /ngx au chemin d’importation.
Je pense que ce suffixe est requis en raison de la version 6 de Angular.

1
Philip D.