Je rencontre une erreur liée aux sous-paquets @intlayer/*
Ce problème survient généralement après une mise à jour des paquets Intlayer.
Exemple de message d'erreur :
Error: Cannot find module '@intlayer/types'TypeError: (0 , __intlayer_config_client.colorize) is not a functionat import { colorize } from '@intlayer/config';✖ ERROR No matching export in "node_modules/@intlayer/config/dist/esm/client.mjs" for import "clearModuleCache"node_modules/@intlayer/unmerged-dictionaries-entry/dist/esm/index.mjs:3:9:3 | import { clearModuleCache, configESMxCJSRequire } from "@intlayer/config"; | ~~~~~~~~~~~~~~~~✖ ERREUR Aucune exportation correspondante dans "node_modules/@intlayer/config/dist/esm/client.mjs" pour l'import "configESMxCJSRequire"node_modules/@intlayer/unmerged-dictionaries-entry/dist/esm/index.mjs:3:27:3 | import { clearModuleCache, configESMxCJSRequire } from "@intlayer/config"; | ~~~~~~~~~~~~~~~~~~~~Raison
Les paquets de base tels que intlayer, react-intlayer, react-native-intlayer, vue-intlayer réutilisent les mêmes sous-paquets que @intlayer/config, @intlayer/core, @intlayer/types afin d'éviter la duplication de code.
Entre deux versions, les exports des sous-paquets ne sont pas garantis d’être les mêmes. Pour limiter ce problème, intlayer fixe la version des sous-paquets à la version du paquet principal.
Ex : intlayer@1.0.0 utilise @intlayer/config@1.0.0, @intlayer/core@1.0.0, @intlayer/types@1.0.0
(À l’exception de @intlayer/swc), les sous-paquets @intlayer/* ne sont pas destinés à être utilisés directement. Nous recommandons donc de ne pas les installer directement.
Résolution
- Assurez-vous que les versions du paquet principal et des sous-paquets sont identiques.
{ "dependencies": { "intlayer": "7.0.1", "react-intlayer": "7.0.0", // Mauvaise version, cela devrait être 7.0.1 }, "devDependencies": { "intlayer-editor": "7.0.1", },}- Essayez de supprimer le fichier de verrouillage (lockfile) et le dossier node_modules, puis réinstallez les dépendances.
Parfois, le gestionnaire de paquets conserve une ancienne version des sous-paquets dans le fichier de verrouillage en cache. Pour résoudre ce problème, vous pouvez essayer de supprimer le fichier de verrouillage et le dossier node_modules, puis réinstaller les dépendances.
rm -rf package-lock.json node_modulesnpm install- Vérifiez l'installation globale
Nous recommandons d’installer intlayer ou intlayer-cli globalement pour accéder aux commandes CLI. Si la version globale n’est pas la même que la version locale, le gestionnaire de paquets peut considérer la mauvaise version.
Vérifier si un paquet est installé globalement
npm list -g --depth=0npm list -g --depth=0 | grep intlayeryarn global listpnpm list -g --depth=0Résoudre les conflits potentiels de dépendances globales
npm uninstall -g intlayer intlayer-cliyarn global remove intlayer intlayer-clipnpm remove -g intlayer intlayer-cli- Essayez de nettoyer le cache
Pour certains environnements comme docker, github actions, ou les plateformes d’hébergement web comme Vercel, un cache peut être présent. Vous pouvez essayer de nettoyer le cache et de réessayer l’installation.
Vous pouvez également essayer de nettoyer le cache de votre gestionnaire de paquets avec la commande suivante :
npm cache clean --forceyarn cache cleanpnpm cache clean