以前我只能使用以下代码导入使用过的运算符:
import 'rxjs/Observable';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/mergeMap';
import 'rxjs/add/operator/catch';
import 'rxjs/add/operator/finally';
import 'rxjs/add/observable/empty';
import 'rxjs/add/observable/throw';
这会生成一个小包(vendor.ts)。
如何在不需要 rxjs-compat 的情况下使用 RxJS 做到这一点?
更改上面的代码以import 'rxjs';
生成更大的包。
更新:
我遵循了您发布的所有答案,但没有任何效果。这是我更新的 vendor.ts:
import 'rxjs/Observable';
import 'rxjs/Subscription';
import 'rxjs/Subject';
import 'rxjs/observable/throw';
import 'rxjs/operators/map';
import 'rxjs/operators/mergeMap';
import 'rxjs/operators/catchError';
import 'rxjs/operators/finalize';
我也尝试使用'rxjs/add/operator/*'。
这就是我导入 rxjs 的方式:
import {Observable} from 'rxjs/Observable';
import {Subscription} from 'rxjs/Subscription';
import {Subject} from 'rxjs/Subject';
import {_throw} from 'rxjs/observable/throw';
import {map} from 'rxjs/operators/map';
import {mergeMap} from 'rxjs/operators/mergeMap';
import {catchError} from 'rxjs/operators/catchError';
import {finalize} from 'rxjs/operators/finalize';
我根据本文档(https://github.com/ReactiveX/rxjs/blob/master/doc/pipeable-operators.md#build-and-treeshaking)更改了我的 Webpack 3 配置,但没有任何效果。
最后,看一下 Webpack Bundle Analyzer 结果:
该捆绑包包括所有运算符。我发现了这个相关的问题: https ://github.com/angular/angular-cli/issues/9069