rxjs6导入方式是否会大大增加应用程序捆绑包的大小

时间:2018-08-12 13:57:19

标签: angular rxjs6

我们的tslint项目

  module.exports = function(config) {
    config.set({

      basePath: '',


      frameworks: ['mocha', 'chai'],

      files: [
        'test/*.test.js'
      ],

      exclude: [
      ],

      preprocessors: {
        'test/*.test.js': ['webpack']
      },

      webpack: {
        mode: "none",
        module: {
          rules: [
            { test: /\.js?$/, loader: "babel-loader",  options: { presets: ["env"] }, }
          ]
        }
      },

      reporters: ['progress'],

      port: 9876,

      colors: true,

      logLevel: config.LOG_INFO,

      autoWatch: true,

      browsers: ['Chrome'],

      singleRun: false,

      concurrency: Infinity,

      browserNoActivityTimeout: 100000
    })
  }

因此,如果我以rxjs6格式导入,它将显示此列表已列入黑名单。当我搜索包含rxjs的原因时,将导入所有Rx功能并增加应用程序包方面。

因此,对于Observable,当前将Observer导入为

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

我想使用import { Observable } from 'rxjs/Observable'; import { Observer } from 'rxjs/Observer'; ,但会导致错误

  

rxjs_Observable__WEBPACK_IMPORTED_MODULE_8 __。Observable.empty为   不是功能

Observable.empty();

我可以直接致电import { empty } from 'rxjs/Observable/empty'; 。但是编辑器中的empty()表明它已被弃用。

在rxjs 6中搜索后,它应该import { empty }

因此,我想问一下如何在不增加应用程序捆绑包大小的情况下解决此导入{empty}弃用问题。从'rxjs'导入{Observable,Observer}是否真的增加了大小?
如果从“ rxjs”导入,则可以使用Observable.empty()。没问题。

非常感谢。

2 个答案:

答案 0 :(得分:0)

如果要使用空,则首选方法是使用empty constant

所以你会

import { EMPTY } from 'rxjs';

foo$.pipe(() => EMPTY).subscribe(() => {});

答案 1 :(得分:0)

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

clo

引用close all

  

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

有关rxjs-dev.firebaseapp的更多信息