繁体   English   中英

在 Angular 4.3 项目中从 RxJS 5 迁移到 RxJS 6

[英]Migration from RxJS 5 to RxJS 6 in Angular 4.3 project

所以我有一个关于 Angular 4.3.1 和 RxJS 5.4.3 的项目? 我需要迁移到 RxJS 6 但保留现有的 Angular 版本。 我阅读了指南,我应该做的步骤是:

  1. rxjs更新到 5.5版本并修复可能的错误。
  2. 更新到rxjs 6并安装rxjs-compat以实现兼容性,修复rxjs-compat未涵盖的可能错误

而且我不需要更改现有代码:导入、添加管道等。 一切都应该工作?

几天前,我在我的项目中遇到了同样的问题,安装“rxjs-compat”暂时解决了这个问题。 但是,在一周内,该项目开始抛出 rxjs 错误。 最后,我还必须更改导入和管道。 我强烈建议尽快更新您的代码,以避免最后一分钟的错误。

RxJS v5.x 到 v6 更新指南RxJS v6 来了! 虽然这是一个主要的版本更改(从 5.x 到 6.x),但我们已经投入了大量工作以将重大更改保持在最低限度。 在大多数情况下,这允许应用程序和库开发人员增量更新并使用 RxJS v6,而无需对其代码进行任何修改。

向后兼容层简化了更新过程,使您可以在按自己的节奏处理大多数代码更改的同时保持应用程序正常运行。 整个过程可以分阶段进行:

  1. 更新到最新版本的 RxJS 5.5 并确保您已修复由错误修复引起的任何问题。

  2. 安装 RxJS v6 以及向后兼容包 rxjs-compat。

  3. 如果您的应用程序受到 rxjs-compat 未涵盖的少数重大更改的影响,请根据下面提供的说明更新受影响的代码。

4.最终,您将需要删除兼容层以完成对 RxJS v6 的更新。 这样做将显着减小应用程序的大小。

要重构 TypeScript 代码使其不依赖于 rxjs-compat,您可以使用 rxjs-tslint。

npm i -g rxjs-tslint
rxjs-5-to-6-migrate -p [path/to/tsconfig.json]
  1. 在 RxJS 发布 v7 之前,您需要删除并替换所有已弃用功能的使用。

向后兼容性为了尽量减少升级的影响,RxJS v6 发布了一个兄弟包,rxjs-compat,它提供了 v6 和 v5 API 之间的兼容层。 大多数拥有现有应用程序的开发人员应该通过在 ^6.0.0 安装 rxjs 和 rxjs-compat 来升级:

npm install rxjs@6 rxjs-compat@6 --save

有关此包的详细信息,请参阅https://www.npmjs.com/package/rxjs-compat

兼容性包会增加应用程序的包大小,这就是为什么我们建议您在应用程序和依赖项更新后立即将其删除。 如果您使用 4.0.0 之前的 Webpack 版本,则这种大小增加会加剧。 有关删除 rxjs-compat 必须更新的内容的完整说明,请参阅删除兼容层 另请注意,将应用程序完全更新到 v6 可能会暴露之前未显示的现有类型错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM