RxJS v5.x 到 v6 更新指南
RxJS v6 已经到来!虽然这是一个主要的版本更改(从 5.x 到 6.x),但我们已经投入了大量工作以将重大更改保持在最低限度。在大多数情况下,这允许应用程序和库开发人员增量更新并使用 RxJS v6,而无需对其代码进行任何修改。
向后兼容层简化了更新过程,让您在按照自己的节奏处理大多数代码更改的同时保持应用正常运行。整个过程可以分阶段进行:
更新到最新版本的 RxJS 5.5 并确保您已经修复了由错误修复引起的任何问题。
安装 RxJS v6 以及 backward-compatibility 包 rxjs-compat。
如果您的应用受到 rxjs-compat 未涵盖的少数 breaking changes 的影响,请根据以下提供的说明更新受影响的代码。
4.最终,您将需要drop the compatibility layer 来完成对 RxJS v6 的更新。这样做会显着减小应用的大小。
要重构 TypeScript 代码使其不依赖于 rxjs-compat,您可以使用 rxjs-tslint。
npm i -g rxjs-tslint
rxjs-5-to-6-migrate -p [path/to/tsconfig.json]
- 在 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 必须更新的内容的完整说明,请参阅Dropping the compatibility layer。另请注意,将您的应用程序完全更新到 v6 可能会暴露以前未显示的现有类型错误。