开发一个angular / cli应用程序,我在某些时候注意到未能明确导入Observable的运算符,如:
import { Observable } from 'rxjs/Observable';
// import 'rxjs/add/operator/zip';
// import 'rxjs/add/operator/mergeMap';
实际上并不妨碍代码编译。过去就是这种情况,但我不确定是什么导致了这种变化,现在注释掉导入并不会停止编译。
这是我的代码的某处或不良状态的配置吗?我仔细检查过 - 没有一个像import {Observable} from 'rxjs'
这样的贪婪导入可能会一次性全局包含所有内容。
如何在必须明确导入单个运算符的情况下恢复以前的行为?我有点喜欢这个要求,因为它表明在输出应用程序中只导入相关的包裹。
答案 0 :(得分:1)
不要包含整个rxjs - 这是巨大的。
我使用了两种补救措施:
在我的IDE(webstorm)中有一个不允许的配置 包括整个rxjs。
所有运营商'包含在rxjs-extension.ts
文件中合并:
import 'rxjs/add/observable/of';
import 'rxjs/add/observable/forkJoin';
import 'rxjs/add/observable/throw';
import 'rxjs/add/observable/empty';
import 'rxjs/add/operator/catch';
import 'rxjs/add/operator/concat';
import 'rxjs/add/operator/delay';
import 'rxjs/add/operator/distinctUntilChanged';
import 'rxjs/add/operator/do';
import 'rxjs/add/operator/filter';
import 'rxjs/add/operator/finally';
import 'rxjs/add/operator/first';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/mergeMap';
import 'rxjs/add/operator/pairwise';
import 'rxjs/add/operator/pluck';
import 'rxjs/add/operator/publishLast';
import 'rxjs/add/operator/skip';
import 'rxjs/add/operator/switchMap';
import 'rxjs/add/operator/switchMapTo';
import 'rxjs/add/operator/take';
import 'rxjs/add/operator/takeWhile';
import 'rxjs/add/operator/toArray';
然后我将此文件包含在app.module.ts和test.ts文件中。