Ricevo un errore relativo ai sotto-pacchetti @intlayer/*
Questo problema si verifica solitamente dopo un aggiornamento dei pacchetti Intlayer.
Esempio di messaggio di errore:
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"; | ~~~~~~~~~~~~~~~~✖ ERRORE Nessuna esportazione corrispondente in "node_modules/@intlayer/config/dist/esm/client.mjs" per l'importazione "configESMxCJSRequire"node_modules/@intlayer/unmerged-dictionaries-entry/dist/esm/index.mjs:3:27:3 | import { clearModuleCache, configESMxCJSRequire } from "@intlayer/config"; | ~~~~~~~~~~~~~~~~~~~~Motivo
I pacchetti base come intlayer, react-intlayer, react-native-intlayer, vue-intlayer riutilizzano gli stessi sotto-pacchetti come @intlayer/config, @intlayer/core, @intlayer/types per evitare la duplicazione del codice.
Tra due versioni, le esportazioni dei sotto-pacchetti non sono garantite essere le stesse. Per limitare questo problema, intlayer fissa la versione dei sotto-pacchetti alla versione del pacchetto principale.
Es: intlayer@1.0.0 utilizza @intlayer/config@1.0.0, @intlayer/core@1.0.0, @intlayer/types@1.0.0
(Ad eccezione di @intlayer/swc), i sotto-pacchetti @intlayer/* non sono pensati per essere usati direttamente. Quindi consigliamo di non installarli direttamente.
Risoluzione
- Assicurarsi che le versioni del pacchetto principale e dei sotto-pacchetti siano le stesse.
{ "dependencies": { "intlayer": "7.0.1", "react-intlayer": "7.0.0", // Versione errata, dovrebbe essere 7.0.1 }, "devDependencies": { "intlayer-editor": "7.0.1", },}- Provare a rimuovere il lockfile e la cartella node_modules e reinstallare le dipendenze.
A volte, il package manager mantiene una vecchia versione dei sotto-pacchetti nel lockfile in cache. Per risolvere questo problema, puoi provare a rimuovere il lockfile e la cartella node_modules e reinstallare le dipendenze.
rm -rf package-lock.json node_modulesnpm install- Controllare l'installazione globale
Consigliamo di installare intlayer o intlayer-cli globalmente per accedere ai comandi CLI. Se la versione globale non è la stessa della versione locale, il package manager potrebbe considerare la versione sbagliata.
Controllare se un pacchetto è installato globalmente
npm list -g --depth=3 | grep intlayeryarn global list --depth=3 | grep intlayerpnpm list -g --depth=3 | grep intlayerbun pm ls -g --depth=3 | grep intlayerRisolvi potenziali conflitti di dipendenze globali
npm uninstall -g intlayer intlayer-cliyarn global remove intlayer intlayer-clipnpm remove -g intlayer intlayer-cli- Prova a pulire la cache
Per alcuni ambienti come docker, github actions o piattaforme di hosting web come Vercel, può essere presente una cache. Puoi provare a pulire la cache e ripetere l’installazione.
Puoi anche provare a pulire la cache del tuo package manager con il seguente comando:
npm cache clean --forceyarn cache cleanpnpm cache clean