Angular 5 转 Angular 6 Rxjs,.map() 变为 .pipe(map())

8

我有一个Angular 5项目,其中包含许多模块和数百个组件。自从RxJs 6之后,你必须使用

someObservable.pipe(map(...))

替代

someObservable.map(...)

我希望将这个项目从 Angular 5 迁移到 6,但不想手动更改每个 .map() 出现的地方。
Angular 更新指南建议:
rxjs-5-to-6-migrate -p src/tsconfig.app.json

我想迁移到rxjs 6,但我担心这不能改变我的代码。

有什么建议可以节省时间并自动从.map()更改为.pipe(map())吗?


1
你确定迁移命令对你没有起作用吗?我在我的一个项目中尝试了一下,它表现得很好。明显的解决方法就是自己进行查找和替换。 - enf0rcer
如果我重新运行命令:“找不到任何可能的迁移”。迁移工具是否将您的代码更改为新布局?如果该工具确实能够这样做,那将是一个很好的线索。 - lynxSven
2
我为您检查了一下,GitHub页面提到它能够在某种程度上帮助您:https://github.com/ReactiveX/rxjs/blob/master/MIGRATION.md - enf0rcer
1
@David Bulté的回答应该是可行的,但首先您必须还原使用命令进行初始运行所做的更改。我需要做同样的事情,它对我完美地起作用了。 - Konto
@Konto 我已经尝试了不同的方法。请再次克隆我的存储库并尝试使用David Bulté的答案。迁移始终以相同的结果运行。导入已更改,但映射未更改。 - lynxSven
显示剩余5条评论
1个回答

5
也许这可以帮助你?
我按照https://update.angular.io/的所有步骤进行了操作,但在链的末尾,我遇到了和你一样的问题:我所有的rxjs导入已经改变,但是运算符没有被更改为可管道化运算符。
然后我注意到rxjs-compat包没有被安装(由于https://github.com/angular/angular-cli/issues/10631?)。手动安装rxjs-compat(npm install rxjs-compat --save)并再次运行rxjs-5-to-6-migrate -p src/tsconfig.app.json,就可以看到管道了!

2
嗯,对我没用。我的映射函数仍然保持不变。该命令执行并返回“找不到任何可能的迁移”。 - lynxSven

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接