Tom
Tom

Reputation: 8681

Cannot find module 'rxjs-compat/Observable'

I am currently upgrading angular 4 to angular 6 code. I have installed "rxjs": "^6.3.2" and un-installed rxjs-compact as I have migrated the code to use the new rxjs operators. I am still getting the following errors. Dont know the reason why

ERROR in [at-loader] ./node_modules/rxjs/BehaviorSubject.d.ts:1:15
    TS2307: Cannot find module 'rxjs-compat/BehaviorSubject'.

ERROR in [at-loader] ./node_modules/rxjs/Observable.d.ts:1:15
    TS2307: Cannot find module 'rxjs-compat/Observable'.

ERROR in [at-loader] ./node_modules/rxjs/Observer.d.ts:1:15
    TS2307: Cannot find module 'rxjs-compat/Observer'.

ERROR in [at-loader] ./node_modules/rxjs/Operator.d.ts:1:15
    TS2307: Cannot find module 'rxjs-compat/Operator'.

ERROR in [at-loader] ./node_modules/rxjs/Subject.d.ts:1:15
    TS2307: Cannot find module 'rxjs-compat/Subject'.

ERROR in [at-loader] ./node_modules/rxjs/Subscription.d.ts:1:15
    TS2307: Cannot find module 'rxjs-compat/Subscription'.

Upvotes: 80

Views: 186513

Answers (18)

Rafeeq
Rafeeq

Reputation: 259

https://rxjs.dev/guide/installation

install both the below packages

npm install rxjs-compat
npm install @reactivex/rxjs

Upvotes: 0

Mounir bkr
Mounir bkr

Reputation: 1625

  1. install rxjs if not installed:

    npm install --save rxjs-compat

2-import observable:

import {Observable} from "rxjs";

instead of:

import {Observable} from "rxjs/dist/types";

Upvotes: 3

Piyush Jindal
Piyush Jindal

Reputation: 111

in package.json add dependency "rxjs": "^6.5.4" then yarn install

or yarn add rxjs@^6.5.4

Upvotes: 0

Mohammad Irshad
Mohammad Irshad

Reputation: 139

npm uninstall @ngrx/store

npm install @ngrx/[email protected]

npm install --save rxjs-compat

Upvotes: 0

F.Ahmad
F.Ahmad

Reputation: 19

It looks like rxjs-compat is missing. just do

npm i rxjs-compat 

npm install

Upvotes: 1

Wissam Al Shohof
Wissam Al Shohof

Reputation: 41

It worked for me just by replacing 'rxjs/Subscription' with 'rxjs'

Upvotes: 3

chander lal piter
chander lal piter

Reputation: 7

I am using Angular 10,this method works for me.

npm install --save rxjs-compat

you should import observable this way:-

import { Observable } from 'rxjs/Observable';

Upvotes: -1

Paridhi shah
Paridhi shah

Reputation: 55

npm i rxjs-compat

It's working for me.

Upvotes: -1

abhinavsinghvirsen
abhinavsinghvirsen

Reputation: 2014

npm install --save rxjs-compat

import { Observable } from 'rxjs'

run server ng serve worked for Me

Upvotes: 1

Jandro Rojas
Jandro Rojas

Reputation: 1972

None of these answers are correct. Installing rxjs-compat is just a workaround. All you have to do is correct the imports. Use:

import { Observable } from 'rxjs';

Instead of:

import { Observable } from 'rxjs/Observable';

This last import is supposed to go away when they finally decide to kill rxjs-compat (hopefully very soon)... so heads up! you need to update your code!!

Upvotes: 137

Aman Gupta
Aman Gupta

Reputation: 89

npm install --save rxjs-compat

and run the server again with ng serve

This works for me.

Upvotes: 7

Manoj Bhagwat
Manoj Bhagwat

Reputation: 11

Those who have this error while creating a salesforce project in VSCode, should ensure that the command - npm install [email protected] --save && npm install [email protected] --save

are installed in - C:\Program Files\Salesforce CLI\client\node_modules directory

Upvotes: 1

mscmnc
mscmnc

Reputation: 431

As, Jandro Rojas, already said, installing rxjs-compat dependency it's only a temporary walkaround. In the future, you still need to fix that. The best solution is to use an Angular update guide https://update.angular.io/ because of some mistakes can be fixed automatically.

From my experience with errors "Cannot find module 'rxjs-compat/Observable'", "Cannot find module 'rxjs-compat'" and etc.

  • You should fix all the imports. From:
import { Observable } from 'rxjs/Observable'

To:

import { Observable } from 'rxjs'
  • If you use RxJS observables classes or etc, you need to update your code. Use this guide -> RxJS v5.x to v6 Update Guide

  • Check carefully your dependencies, it should be updated too to use the newest RxJs. In my case "ngx-bootstrap" was outdated.

Upvotes: 11

Hameed Syed
Hameed Syed

Reputation: 4225

This will solve the issue:

npm install --save rxjs-compat 

See this GitHub issue

Edit : as per 10th October 2019 ,you can use below syntax as the earlier or the above one was a workaround.

import { Observable } from 'rxjs/Observable';

Reference doc: https://github.com/ReactiveX/rxjs/blob/master/docs_app/content/guide/v6/migration.md#dropping-the-compatibility-layer

Upvotes: 109

Feras Darkazanly
Feras Darkazanly

Reputation: 31

import { Observable } from 'rxjs';

this will be enough, there's no need for other imports

Upvotes: 3

Abdullah
Abdullah

Reputation: 2933

  • ] node_modules/rxjs/Observable.d.ts(1,15): error TS2307: Cannot find module 'rxjs-compat/Observable'

I have got same above error, to resolve the issue enter this command in you CLI:

  • npm install --save rxjs-compat

Then after import: import { Observable } from 'rxjs';

Upvotes: 1

Nimesh Shah
Nimesh Shah

Reputation: 19

Both the rxjs and rxjs-compat of the version 6.3.2 worked for me.

npm install [email protected] --save  &&  npm install [email protected] --save

Upvotes: 1

Yogesh Kumar
Yogesh Kumar

Reputation: 1046

Just open command prompt & add below command in to your root folder.

npm i rxjs-compat

Hope it's working ..

Upvotes: 5

Related Questions