如何从rxjs中提取某些项目?

时间:2018-01-18 05:30:34

标签: javascript rxjs

我正在编写一个将rxjs作为依赖项的lib。它只使用Subject - 我是否有可能提取一个特征并将其包含在我的lib中,从而无需将rxjs作为依赖项?

2 个答案:

答案 0 :(得分:2)

没有。检查内部依赖项Subject依赖于(https://github.com/ReactiveX/rxjs/blob/master/src/internal/Subject.ts#L1-L8)。它几乎需要rx中的大部分原语。

除了可用性之外,如果你依赖于rxjs,你还有什么理由不将它指定为依赖?

答案 1 :(得分:0)

看起来使用Webpack的树摇动功能为我做了这件事。

https://webpack.js.org/guides/tree-shaking/

我的Webpack配置:

const UglifyJSPlugin = require('uglifyjs-webpack-plugin')

module.exports = {
    entry: ['./src/index.js'],
    output: {
        filename: './dist/dist.bundle.js'
    },
    module: {
        rules: [
            { 
                test: /\.js$/, 
                exclude: /node_modules/, 
                loader: "babel-loader" ,
                query: {
                    presets: ['env'],
                    plugins: ["transform-object-rest-spread"]
                }
            }
        ]
    },
    plugins: [
        new UglifyJSPlugin()
    ]
}

并指定导入的位置,如:

import { Subject } from "rxjs/subject"

而不是

import { Subject } from "rxjs"

捆绑包大小从213kb升级到14kb

相关问题