Skip to Content

Migrer vers Core v9

Ce guide concerne la migration des modules frontend vers Core v9 et supérieur. Le changement majeur de cette version est la mise à jour de l’écosystème d’internationalisation i18next, introduit dans cette pull request .

Contexte

Core v9 met à jour l’écosystème i18next vers des versions modernes. Les versions précédentes (i18next v21, react-i18next v11) étaient considérablement obsolètes, et cette mise à jour apporte un meilleur support TypeScript, de meilleures performances et une maintenance continue.

Le changement clé qui rend cette version incompatible est que react-i18next v16 ne réexporte plus le type TFunction. Le code qui importe TFunction depuis react-i18next ne compilera plus.

Étapes de migration

Mettre à jour les dépendances Core

Mettez à jour les dépendances Core vers leurs versions les plus récentes marquées next :

yarn up openmrs@next @openmrs/esm-framework@next

Mettre à jour les dépendances de l’écosystème i18next

Mettez à jour les packages i18next dans votre package.json :

yarn up i18next@^25.0.0 react-i18next@^16.0.0 i18next-parser@^9.3.0

Mettez également à jour la version de la dépendance peer react-i18next dans le package.json de chaque module frontend de 11.x à 16.x :

{ "peerDependencies": { "react-i18next": "16.x" } }

Mettre à jour TypeScript

i18next v25 nécessite TypeScript 5 ou supérieur. Mettez à jour votre dépendance TypeScript :

yarn up typescript@^5.0.0

Corriger les imports de TFunction

Le type TFunction n’est plus réexporté depuis react-i18next. Mettez à jour tous les imports pour utiliser le package i18next à la place :

Avant :

import { useTranslation, type TFunction } from "react-i18next";

Après :

import { useTranslation } from "react-i18next"; import type { TFunction } from "i18next";

Pour trouver tous les fichiers affectés dans votre base de code, exécutez :

rg -n "TFunction.*react-i18next|react-i18next.*TFunction" src --glob "*.{ts,tsx}"

Après avoir complété les étapes ci-dessus, vérifiez que tout fonctionne :

  • Exécuter les tests : yarn test
  • Exécuter un build de développement : yarn start
  • Exécuter un build de production : yarn build

Workspace v2

Core v9 introduit également Workspace v2, un système de workspaces repensé avec un modèle hiérarchique groupe/fenêtre/workspace. L’API workspace v1 est désormais dépréciée mais toujours fonctionnelle. La migration vers Workspace v2 est optionnelle mais recommandée.

Consultez le guide de migration Workspace v2 pour plus de détails.

Exemples de migration

Dernière mise à jour le