【问题标题】:Does the way of rxjs6 import dramatically increase the size of the application bundlerxjs6 导入的方式是否会显着增加应用程序包的大小
【发布时间】:2019-01-19 10:13:37
【问题描述】:

我们的 Angular 项目 tslint

"import-blacklist": [
        true,
        "rxjs"
]

所以如果我导入为 rxjs6,它会显示这已被列入黑名单。当我搜索包含 rxjs 的原因时,将导入所有 Rx 功能并增加应用程序捆绑端。

所以目前对于 Observable,Observer 它导入为

import { Observable } from 'rxjs/Observable';
import { Observer } from 'rxjs/Observer';

我想用Observable.empty();但是会报错

rxjs_Observable__WEBPACK_IMPORTED_MODULE_8__.Observable.empty 是 不是函数

import { empty } from 'rxjs/Observable/empty';

我可以直接拨打empty()。但是编辑器中的import { empty } 表明它已被弃用。

在rxjs 6中搜索后,应该是import { empty } from 'rxjs'

所以我想问一下如何在不增加应用程序包大小的情况下修复这个 import { empty } 弃用。 import { Observable, Observer } from 'rxjs' 真的会增加大小吗?
如果它从“rxjs”导入,那么我可以使用 Observable.empty()。它没有问题。

非常感谢。

【问题讨论】:

  • 您可能会发现here 的信息很有用。
  • 没有什么可修复的,使用该导入不会显着增加生产包的大小,因为未使用的函数将被摇树。 (如果有办法测试它!哦等等......)

标签: angular rxjs6


【解决方案1】:

在最新版本的 RxJs 中使用 empty 的最佳方式:

import { EMPTY } from 'rxjs';
...
return EMPTY

引用rxjs-dev.firebaseapp

在没有调度程序的情况下,任何对 empty 的调用都返回相同的 Observable 实例。最好使用 this 而不是 empty()

更多信息EMPTY

【讨论】:

    【解决方案2】:

    如果你想使用空,首选的方法是使用empty constant

    所以你会有

    import { EMPTY } from 'rxjs';
    
    foo$.pipe(() => EMPTY).subscribe(() => {});
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-27
      • 1970-01-01
      • 2016-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多