从 'rxjs/Observable' 导入 { Observable } 和从 'rxjs' 导入 { Observable } 之间有什么区别吗?

10
在 Angular 2 中使用 rxjs 时,import { Observable } from 'rxjs/Observable'import { Observable } from 'rxjs'之间有什么区别吗?
1个回答

13

是的,有一个微小的区别,即捆绑包大小。如果您没有使用像 rollup.js 这样的树摇动库来删除所有不必要的代码,则从 'rxjs' 导入时,您将导入所有内容,即使您只使用 Observable。另一方面,如果您从 'rxjs/Observable' 导入,则只会导入所需的内容,捆绑包将更小。

仅导入您需要的内容并修补 Observable(这在大小敏感的捆绑场景中非常有用)

参考: https://github.com/ReactiveX/rxjs


3
除了捆绑包大小之外,仅导入几个特定文件与编译器遍历rxjs包中的所有~300个文件相比,在许多情况下构建时间也会显著降低,这肯定会增加几秒钟+ RAM。 - olsn
有趣的观点。我在VS Code中使用Typescript Toolbox插件。它正在执行import { Observable } from 'rxjs/Rx';。rxjs/Rx比rxjs/Observable更大吗?插件是否应该尝试导入最少量的内容? - techguy2000
@techguy2000,rxjs/Rx 文件的大小可能比 rxjs/Observable 小,但它内部所做的是导入所有其他文件,如 Observable、map、do 等等,从而使您的捆绑包大小变大。 - Kowsalya

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接