如何仅使用rxjs compat的一部分,或编写自定义rxjs compat?
我们的项目使用Angular&Rxjs 6,所有工作都很好 我们还更新了代码以使用管道操作符,因此我们希望删除如何仅使用rxjs compat的一部分,或编写自定义rxjs compat?,rxjs,rxjs6,rxjs-compat,Rxjs,Rxjs6,Rxjs Compat,我们的项目使用Angular&Rxjs 6,所有工作都很好 我们还更新了代码以使用管道操作符,因此我们希望删除rxjs compat 唯一的问题是,我们的一个依赖项仍然对Observable和Subject使用旧的导入语法 import { Observable } from 'rxjs/Observable'; import { Subject } from 'rxjs/Subject'; 有没有办法为这两个类提供我们自己的最小rxjs兼容性 该库没有对Observable和Subject做
rxjs compat
唯一的问题是,我们的一个依赖项仍然对Observable和Subject使用旧的导入语法
import { Observable } from 'rxjs/Observable';
import { Subject } from 'rxjs/Subject';
有没有办法为这两个类提供我们自己的最小rxjs兼容性
该库没有对Observable和Subject做任何花哨的处理,也没有使用任何运算符,因此导入完整的rxjs compat包似乎有些过火。使用@cartant所述的
路径
,我成功地在没有rxjs compat
的情况下编译了它,但是输出main.js
甚至比使用完整的compat库还要大
- 与rxjs兼容时=691KB
- 带修补的库导入=671 KB(理想大小)
- 使用
path hack=700 KBrxjs compat
src\rxjs compat\node\u modules
(注意node\u modules名称,它用于绕过rxjs compat
复制所需的d.ts
和.js
文件(在我的例子中,可观察到和主题)
“路径”:{
“rxjs兼容/可观测”:[“rxjs兼容/节点\模块/可观测”],
“rxjs/Subject”:[“rxjs compat/node_modules/Subject”]
}
我认为使用
路径
选项时不需要复制任何文件
我想试试这样的东西:
"compilerOptions": {
"baseUrl": ".",
"paths": {
"rxjs/Observable": ["./node_modules/rxjs/internal/Observable"],
"rxjs/Subject": ["./node_modules/rxjs/internal/Subject"]
}
}
请注意,必须指定baseUrl
问题是
路径
选项是否会影响节点单元模块
中的其他依赖项。我不确定,也没有尝试过。您可能可以使用tsconfig.json
文件的compilerOptions
中的path
设置来做一些事情-也就是说,将rxjs compat
重定向到其他地方-但我从未尝试过使用依赖项的依赖项。但这真的重要吗?树摇动不会产生同样的效果吗?@cartant树摇动似乎对rxjs compat不起作用。我尝试了你提到的路径
技巧,但似乎没有达到我预期的效果。。。我可能做错了什么