Recebo um erro relacionado aos sub-pacotes @intlayer/*
Este problema geralmente ocorre após uma atualização dos pacotes Intlayer.
Exemplo de mensagem de erro:
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"; | ~~~~~~~~~~~~~~~~✖ ERRO Nenhuma exportação correspondente em "node_modules/@intlayer/config/dist/esm/client.mjs" para a importação "configESMxCJSRequire"node_modules/@intlayer/unmerged-dictionaries-entry/dist/esm/index.mjs:3:27:3 | import { clearModuleCache, configESMxCJSRequire } from "@intlayer/config"; | ~~~~~~~~~~~~~~~~~~~~Razão
Pacotes base como intlayer, react-intlayer, react-native-intlayer, vue-intlayer estão reutilizando os mesmos sub-pacotes como @intlayer/config, @intlayer/core, @intlayer/types para evitar duplicação de código.
Entre duas versões, as exportações dos sub-pacotes não são garantidas como sendo as mesmas. Para limitar esse problema, o intlayer fixa a versão dos sub-pacotes para a versão do pacote principal.
Ex: intlayer@1.0.0 usa @intlayer/config@1.0.0, @intlayer/core@1.0.0, @intlayer/types@1.0.0
(Exceto para @intlayer/swc), os sub-pacotes @intlayer/* não são destinados a serem usados diretamente. Portanto, recomendamos não instalá-los diretamente.
Resolução
- Garanta que as versões do pacote principal e dos sub-pacotes sejam as mesmas.
{ "dependencies": { "intlayer": "7.0.1", "react-intlayer": "7.0.0", // Versão errada, deveria ser 7.0.1 }, "devDependencies": { "intlayer-editor": "7.0.1", },}- Tente remover o arquivo de bloqueio (lockfile) e a pasta node_modules e reinstalar as dependências.
Às vezes, o gerenciador de pacotes mantém uma versão antiga dos sub-pacotes no arquivo de bloqueio em cache. Para corrigir isso, você pode tentar remover o arquivo de bloqueio e a pasta node_modules e reinstalar as dependências.
rm -rf package-lock.json node_modulesnpm install- Verifique a instalação global
Recomendamos instalar intlayer ou intlayer-cli globalmente para acessar os comandos CLI. Se a versão global não for a mesma que a versão local, o gerenciador de pacotes pode considerar a versão errada.
Verifique se um pacote está instalado globalmente
npm list -g --depth=0npm list -g --depth=0 | grep intlayeryarn global listpnpm list -g --depth=0Corrigir potenciais conflitos de dependências globais
npm uninstall -g intlayer intlayer-cliyarn global remove intlayer intlayer-clipnpm remove -g intlayer intlayer-cli- Tente limpar o cache
Em alguns ambientes como docker, github actions, ou plataformas de hospedagem web como Vercel, pode haver um cache presente. Você pode tentar limpar o cache e tentar a instalação novamente.
Você também pode tentar limpar o cache do seu gerenciador de pacotes com o seguinte comando:
npm cache clean --forceyarn cache cleanpnpm cache clean