Obtengo un error relacionado con los sub-paquetes @intlayer/*
Este problema suele ocurrir después de una actualización de los paquetes de Intlayer.
Ejemplo de mensaje de error:
Copiar el código al portapapeles
Error: Cannot find module '@intlayer/types'Copiar el código al portapapeles
TypeError: (0 , __intlayer_config_client.colorize) is not a functionat import { colorize } from '@intlayer/config';Copiar el código al portapapeles
✖ 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"; | ~~~~~~~~~~~~~~~~✖ ERROR No matching export in "node_modules/@intlayer/config/dist/esm/client.mjs" for import "configESMxCJSRequire"node_modules/@intlayer/unmerged-dictionaries-entry/dist/esm/index.mjs:3:27:3 | import { clearModuleCache, configESMxCJSRequire } from "@intlayer/config"; | ~~~~~~~~~~~~~~~~~~~~Razón
Los paquetes base como intlayer, react-intlayer, react-native-intlayer, vue-intlayer están reutilizando los mismos sub-paquetes como @intlayer/config, @intlayer/core, @intlayer/types para evitar la duplicación de código.
Entre dos versiones, no se garantiza que las exportaciones de los sub-paquetes sean las mismas. Para limitar este problema, intlayer fija la versión de los sub-paquetes a la versión del paquete principal.
Ej: intlayer@1.0.0 usa @intlayer/config@1.0.0, @intlayer/core@1.0.0, @intlayer/types@1.0.0
(Excepto para @intlayer/swc), los sub-paquetes @intlayer/* no están destinados a ser usados directamente. Por lo tanto, recomendamos no instalarlos directamente.
Resolución
- Asegúrate de que las versiones del paquete principal y de los sub-paquetes sean las mismas.
Copiar el código al portapapeles
{ "dependencies": { "intlayer": "7.0.1", "react-intlayer": "7.0.0", // Versión incorrecta, debería ser 7.0.1 }, "devDependencies": { "intlayer-editor": "7.0.1", },}- Intenta eliminar el lockfile y la carpeta node_modules y reinstalar las dependencias.
A veces, el gestor de paquetes mantiene una versión antigua de los sub-paquetes en el lockfile o en la caché. Para solucionar esto, puedes intentar eliminar el lockfile y la carpeta node_modules y reinstalar las dependencias.
Copiar el código al portapapeles
rm -rf package-lock.json node_modulesnpm install- Verifica la instalación global
Recomendamos instalar intlayer o intlayer-cli globalmente para acceder a los comandos CLI. Si la versión global no es la misma que la versión local, el gestor de paquetes puede considerar la versión incorrecta.
Verificar si un paquete está instalado globalmente
Copiar el código al portapapeles
npm list -g --depth=0Copiar el código al portapapeles
npm list -g --depth=0 | grep intlayerCopiar el código al portapapeles
yarn global listCopiar el código al portapapeles
pnpm list -g --depth=0Soluciona posibles conflictos de dependencias globales
Copiar el código al portapapeles
npm uninstall -g intlayer intlayer-cliCopiar el código al portapapeles
yarn global remove intlayer intlayer-cliCopiar el código al portapapeles
pnpm remove -g intlayer intlayer-cli- Intenta limpiar la caché
En algunos entornos como docker, github actions o plataformas de hosting web como Vercel, puede existir una caché. Puedes intentar limpiar la caché y volver a intentar la instalación.
También puedes intentar limpiar la caché de tu gestor de paquetes con el siguiente comando:
Copiar el código al portapapeles
npm cache clean --forceCopiar el código al portapapeles
yarn cache cleanCopiar el código al portapapeles
pnpm cache clean