Angulaire 5 -> Angulaire 6 Rxjs .carte() pour .pipe(map())
J'ai Angulaire 5 projet qui a de nombreux modules et des centaines de composants. Depuis RxJs 6 vous devez utiliser
someObservable.pipe(map(...))
au lieu de
someObservable.map(...)
Je veux migrer ce projet Angulaires de 5 à 6, mais ne veulent pas changer toutes les occurrences de .map()
à la main.
L'angle de la mise à jour côté suggère
rxjs-5-to-6-migrate -p src/tsconfig.app.json
pour la migration vers rxjs 6, mais j'ai peur que cela ne peut pas changer mon code.
Des suggestions sur la façon d'économiser du temps et de changer de .map()
à .pipe(map())
automatiquement?
- Êtes-vous sûr que la migration de commande ne fonctionne pas pour vous? Je l'ai essayé dans un de mes projets et il a fait un travail solide. La solution évidente serait de faire une rechercher et remplacer vous-même.
- Si je exécutez à nouveau la commande: "Impossible de trouver d'éventuelles migrations'. A la migrationtool modifier votre code pour la nouvelle mise en page? Serait une bonne idée si l'outil est réellement capable de le faire.
- Oui il l'a fait, je ne suis pas sûr de la méthode map bien. Mais elle a sûrement changé importations et des trucs comme ça.
- Il a changé ma importations avec succès. Il n'a pas changé tout de la .les fonctions de mappage autour de
- Peut-être que votre code est trop complexe pour que le script automatiquement les changer. Mon projet était déjà en utilisant le tuyau de modèle. Donc il n'a pas à modifier ces. Elle a changé seulement. l'ancien importer des chemins d'accès pour les nouveaux.
- Ou le script n'a tout simplement pas la fonctionnalité, c'est possible ainsi afcourse.
- Je l'ai vérifié pour vous, la page GitHub mentionne qu'il est en mesure de vous aider "dans une certaine mesure": github.com/ReactiveX/rxjs/blob/master/MIGRATION.md
- Ouais, j'ai rencontré le même problème et ne pouvait pas trouver une solution, en plus de manuels d'édition (je ne sais même pas où je voudrais commencer par une recherche-remplacement...). J'aimerais vraiment qu'ils avaient fait la pipe de la syntaxe de l'option; - je que c'est utile dans certains cas mais pour mon projet d'autant qu'il fait est de rendre le code plus laide et la migration dix fois plus compliqué.
- Bulté la réponse devrait fonctionner, mais vous devez d'abord annuler les changements effectués avec les initiales de l'exécution de la commande. J'avais besoin de faire la même chose et cela a fonctionné parfaitement pour moi.
- J'ai essayé différentes approches de maintenant. Clone de ma logithèque et l'utilisation de David Bulté de réponse. La migration s'exécute toujours avec le même résultat. Les importations sont modifiées, mais la carte ne sont pas modifiés.
Vous devez vous connecter pour publier un commentaire.
Peut-être que cela peut aider?
J'ai suivi toutes les étapes https://update.angular.io/, mais de toute façon à la fin de la chaîne, j'ai eu le même problème que vous avez, tous mes rxjs les importations ont changé, mais les opérateurs n'avaient pas été changé à pipeable opérateurs.
Puis j'ai remarqué que le rxjs-compat colis n'avait pas été installé (en raison de https://github.com/angular/angular-cli/issues/10631?). Après l'installation de rxjs-compat manuellement (
npm install rxjs-compat --save
) et en cours d'exécutionrxjs-5-to-6-migrate -p src/tsconfig.app.json
encore une fois, les tuyaux apparu!