首页 文章

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

提问于
浏览
-1

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

  • 更新 rxjs to 5.5 版本并修复可能的错误 .

  • 更新为 rxjs 6 并安装 rxjs-compat 以获得兼容性,修复 rxjs-compat 未涵盖的可能错误

而且我不需要更改现有代码:导入,添加管道等 . 一切都应该有效吗?

2 回答

  • 0

    几天前我在我的项目中面临同样的问题,安装'rxjs-compat'暂时修复了问题 . 但是,在一周内,该项目开始抛出rxjs错误 . 最后,我还必须改变进口和管道 . 我强烈建议您尽快更新代码以避免最后一分钟的错误 .

  • 0

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

    向后兼容层可简化更新过程,使您可以按照自己的进度处理大多数代码更改,从而确保应用程序正常运行 . 整个过程可以分阶段进行:

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

    • 安装RxJS v6和backward-compatibility软件包,rxjs-compat .

    • 如果您的应用受到rxjs-compat未涵盖的少数_2979452的影响,请根据下面提供的说明更新受影响的代码 .

    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之前,您需要删除并替换所有已弃用的功能 .

    Backwards compatibility 为了最大程度地降低升级的影响,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可能会暴露以前未显示的现有类型错误 .

相关问题