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 :
Copier le code dans le presse-papiers
Error: Cannot find module '@intlayer/types'Copier le code dans le presse-papiers
TypeError: (0 , __intlayer_config_client.colorize) is not a functionat import { colorize } from '@intlayer/config';Copier le code dans le presse-papiers
✖ 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.
Copier le code dans le presse-papiers
{ "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.
Copier le code dans le presse-papiers
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
Copier le code dans le presse-papiers
npm list -g --depth=0Copier le code dans le presse-papiers
npm list -g --depth=0 | grep intlayerCopier le code dans le presse-papiers
yarn global listCopier le code dans le presse-papiers
pnpm list -g --depth=0Résoudre les conflits potentiels de dépendances globales
Copier le code dans le presse-papiers
npm uninstall -g intlayer intlayer-cliCopier le code dans le presse-papiers
yarn global remove intlayer intlayer-cliCopier le code dans le presse-papiers
pnpm 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 :
Copier le code dans le presse-papiers
npm cache clean --forceCopier le code dans le presse-papiers
yarn cache cleanCopier le code dans le presse-papiers
pnpm cache clean