找不到模块'rxjs-compat/Observable'

Tom*_*Tom 17 rxjs angular

我目前正在将角度4升级为角度6代码.我已经安装了"rxjs":"^ 6.3.2"和未安装的rxjs-compact,因为我已经迁移了代码以使用新的rxjs运算符.我仍然遇到以下错误.不知道原因

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'.
Run Code Online (Sandbox Code Playgroud)

Ham*_*yed 53

npm install --save rxjs-compat 
Run Code Online (Sandbox Code Playgroud)

将解决问题.这是github问题链接https://github.com/valor-software/ng2-handsontable/issues/505

  • 这不应该是正确的答案...使用rxjs-compat只是他们创建的临时解决方案,目的是在新版本中继续安全使用旧的导入...您应该做的是更新导入。请参阅下面的答案 (2认同)

Jan*_*jas 19

这些答案均不正确。安装rxjs-compat只是一种解决方法。您所需要做的就是更正导入。使用:

import { Observable } from 'rxjs';
Run Code Online (Sandbox Code Playgroud)

代替:

import { Observable } from 'rxjs/Observable';
Run Code Online (Sandbox Code Playgroud)

当他们最终决定杀死rxjs-compat时(希望很快),这最后的导入应该消失了。您需要更新您的代码!!

  • 这个答案需要更多的赞成,因为它是最好的答案 (2认同)

小智 6

正如 Jandro Rojas 已经说过的,安装 rxjs-compat 依赖项只是一个临时的解决方法。将来,您仍然需要解决这个问题。最好的解决方案是使用 Angular 更新指南 https://update.angular.io/因为一些错误可以自动修复。

根据我对“找不到模块 'rxjs-compat/Observable'”、“找不到模块 'rxjs-compat'”等错误的经验。

  • 您应该修复所有导入。从:
import { Observable } from 'rxjs/Observable'
Run Code Online (Sandbox Code Playgroud)

到:

import { Observable } from 'rxjs'
Run Code Online (Sandbox Code Playgroud)
  • 如果你使用 RxJS observables 类等,你需要更新你的代码。使用本指南 -> RxJS v5.x 到 v6 更新指南

  • 仔细检查您的依赖项,它也应该更新以使用最新的 RxJs。就我而言,“ngx-bootstrap”已经过时了。


小智 5

只需打开命令提示符并将以下命令添加到您的根文件夹中。

npm i rxjs-compat
Run Code Online (Sandbox Code Playgroud)

希望它能发挥作用..


小智 5

npm install --save rxjs-compat
Run Code Online (Sandbox Code Playgroud)

并再次运行服务器 ng serve

这对我有用。