Otrzymuję błąd związany z sub-pakietami @intlayer/*
Ten problem zwykle występuje po aktualizacji pakietów Intlayer.
Przykład komunikatu o błędzie:
Skopiuj kod do schowka
Error: Cannot find module '@intlayer/types'Skopiuj kod do schowka
TypeError: (0 , __intlayer_config_client.colorize) is not a functionat import { colorize } from '@intlayer/config';Skopiuj kod do schowka
✖ 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"; | ~~~~~~~~~~~~~~~~✖ BŁĄD Brak odpowiedniego eksportu w "node_modules/@intlayer/config/dist/esm/client.mjs" dla importu "configESMxCJSRequire"node_modules/@intlayer/unmerged-dictionaries-entry/dist/esm/index.mjs:3:27:3 | import { clearModuleCache, configESMxCJSRequire } from "@intlayer/config"; | ~~~~~~~~~~~~~~~~~~~~Powód
Podstawowe pakiety takie jak intlayer, react-intlayer, react-native-intlayer, vue-intlayer ponownie wykorzystują te same sub-pakiety jak @intlayer/config, @intlayer/core, @intlayer/types, aby uniknąć duplikacji kodu.
Między dwiema wersjami eksporty sub-pakietów nie są gwarantowane jako identyczne. Aby ograniczyć ten problem, intlayer przypisuje wersję sub-pakietów do wersji głównego pakietu.
Przykład: intlayer@1.0.0 używa @intlayer/config@1.0.0, @intlayer/core@1.0.0, @intlayer/types@1.0.0
(Z wyjątkiem @intlayer/swc), sub-pakiety @intlayer/* nie są przeznaczone do bezpośredniego użycia. Dlatego zalecamy, aby ich nie instalować bezpośrednio.
Rozwiązanie
- Upewnij się, że wersje głównego pakietu i sub-pakietów są takie same.
Skopiuj kod do schowka
{ "dependencies": { "intlayer": "7.0.1", "react-intlayer": "7.0.0", // Nieprawidłowa wersja, powinna być 7.0.1 }, "devDependencies": { "intlayer-editor": "7.0.1", },}- Spróbuj usunąć plik blokady (lockfile) oraz folder node_modules i ponownie zainstalować zależności.
Czasami menedżer pakietów przechowuje starą wersję sub-pakietów w pliku blokady w pamięci podręcznej. Aby to naprawić, możesz spróbować usunąć plik blokady oraz folder node_modules i ponownie zainstalować zależności.
Skopiuj kod do schowka
rm -rf package-lock.json node_modulesnpm install- Sprawdź instalację globalną
Zalecamy zainstalowanie intlayer lub intlayer-cli globalnie, aby mieć dostęp do poleceń CLI. Jeśli wersja globalna różni się od wersji lokalnej, menedżer pakietów może uznać niewłaściwą wersję.
Sprawdź, czy pakiet jest zainstalowany globalnie
Skopiuj kod do schowka
npm list -g --depth=0Skopiuj kod do schowka
npm list -g --depth=0 | grep intlayerSkopiuj kod do schowka
yarn global listSkopiuj kod do schowka
pnpm list -g --depth=0Napraw potencjalne konflikty zależności globalnych
Skopiuj kod do schowka
npm uninstall -g intlayer intlayer-cliSkopiuj kod do schowka
yarn global remove intlayer intlayer-cliSkopiuj kod do schowka
pnpm remove -g intlayer intlayer-cli- Spróbuj wyczyścić pamięć podręczną
W niektórych środowiskach, takich jak docker, github actions czy platformy hostingowe jak Vercel, może istnieć pamięć podręczna. Możesz spróbować wyczyścić pamięć podręczną i ponowić instalację.
Możesz także spróbować wyczyścić pamięć podręczną menedżera pakietów za pomocą następującego polecenia:
Skopiuj kod do schowka
npm cache clean --forceSkopiuj kod do schowka
yarn cache cleanSkopiuj kod do schowka
pnpm cache clean