返回 Rx.Observable 的 Lib 函数不会继承新的运算符



我正在开发一个具有RxJS作为同伴依赖性的LIB,我正在使用webpack捆绑它。我通过设置externals: [require("webpack-rxjs-externals")()]

在那个lib中,我有一个可返回可观察到的函数。类似:

import { from } from 'rxjs/observable/from'
import { map, distinctUntilChanged } from 'rxjs/operators'
export default function xpto(predicate) {
  return from(this).pipe(
    map(predicate),
    distinctUntilChanged()
  )
}

然后,此函数绑定到公开可观察到的钩子的对象,并且可以按预期工作。

当我将此液体导入另一个项目时,就会发生问题,我还包括RXJ,并添加了几个 rx运算符 prototype prototype patching 他们:P>

import 'lib' // the one with xpto function
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/filter'
// this breaks because although xpto returns an Observable
// it somehow wasn't patched with the filter operator
xpto(predicate).filter(whatever).subscribe(etc)

通过修补可观察的原型,我希望可观察的实例 xpto返回,使导入的操作员可以通过原型链访问...但是它没有。

是因为xpto函数如何绑定?是 webpack 的东西吗?我在这里缺少什么?

似乎至少有两个Observable实例。一个继承操作员,另一个则没有。

可以通过在包括 app webpack.config.js上添加以下内容来解决这一点:其中包括 lib

resolve: {
    alias: {
        'rxjs/Observable': path.join(__dirname, './node_modules/rxjs/Observable')
    }
}

最新更新