web-dev-qa-db-fra.com

Angular 4: erreur du module non trouvé concernant les RxJs

lors de la construction de l'application Angular, la plupart de ces erreurs se trouvent ci-dessous.

ERROR in ./~/@reactivex/rxjs/dist/cjs/Rx.js
Module not found: Error: Can't resolve './add/operator/filter' in 
'...\node_modules\@reactivex\rxjs\dist\cjs'
 @ ./~/@reactivex/rxjs/dist/cjs/Rx.js 70:0-32
 @ ./~/@reactivex/rxjs/index.js
 @ ./~/ri-api-client/dist/index.js
 @ ./src/app/core/api.service.ts
 @ ./src/$$_gendir/app/app.module.ngfactory.ts
 @ ./src/main.ts
 @ multi ./src/main.ts

qu'est-ce que je rate?

D'après votre message d'erreur, il semble que votre déclaration d'importation ne soit pas correcte. Il se plaint de ne pas trouver quelque chose dans node_modules/@ reactivex, mais il devrait chercher dans node_modules/rxjs.

Votre déclaration d'importation devrait ressembler à ceci:

import 'rxjs/add/operator/filter';
5
Yakov Fain

J'ai eu une erreur similaire ..

`ERROR in ./src/app/shared/giphy/giphy.service.ts`

Module not found: Error: Can't resolve 'rxjs/add/operator/map' in '/Users/user1/opt/work/mine/development/ic/ic-pms/pms-ui/src/app/shared/giphy'ℹ 「wdm」: Failed to compile. ERROR in src/app/shared/giphy/giphy.service.ts(16,35): error TS2339: Property 'map' does not exist on type 'Observable<Object>'.

La solution Ans pour cela est npm install rxjs@6 rxjs-compat@6 --save

28
nani21984

RXJS a changé sa syntaxe dans la version 6+

La nouvelle solution devrait être:

import { filter } from 'rxjs/operators';

ne pas 

import 'rxjs/add/operator/filter';

Plus de détails ici: https://www.academind.com/learn/javascript/rxjs-6-what-changed/

3
closedloop

J'ai trouvé que angular recherche rxjs/add/operator/map dans le dossier où il est utilisé dans le service au lieu de node_modules.

J'ai résolu ce problème en important simplement le fichier rxjs dans mon app.module.ts. Try en ajoutant le code suivant dans app.module.ts

import 'rxjs';
1
Prem Ananth C

Utilisez la méthode du canal pour .map Ajoutez simplement - 

.pipe ( votre code, carte ......);

import { map } from 'rxjs/operators';

.pipe(map(
      (response) => response.json()
 ))

Ça marche pour moi.

1
yunus YK

Vous devrez peut-être installer 'rxjs-compat' si vous utilisez angular 4+.

0
Sujatha Girijala