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