Получайте уведомления о предстоящих релизах Intlayer

    Я получаю ошибку, связанную с суб-пакетами @intlayer/*

    Эта проблема обычно возникает после обновления пакетов Intlayer.

    Пример сообщения об ошибке:

    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";  |          ~~~~~~~~~~~~~~~~✖ ERROR  Нет соответствующего экспорта в "node_modules/@intlayer/config/dist/esm/client.mjs" для импорта "configESMxCJSRequire"node_modules/@intlayer/unmerged-dictionaries-entry/dist/esm/index.mjs:3:27:3 | import { clearModuleCache, configESMxCJSRequire } from "@intlayer/config";  |                            ~~~~~~~~~~~~~~~~~~~~

    Причина

    Базовые пакеты, такие как intlayer, react-intlayer, react-native-intlayer, vue-intlayer, повторно используют одни и те же суб-пакеты, такие как @intlayer/config, @intlayer/core, @intlayer/types, чтобы избежать дублирования кода.

    Между двумя версиями экспорты суб-пакетов не гарантируются быть одинаковыми. Чтобы ограничить эту проблему, intlayer фиксирует версию суб-пакетов на версии основного пакета.

    Пример: intlayer@1.0.0 использует @intlayer/config@1.0.0, @intlayer/core@1.0.0, @intlayer/types@1.0.0
    (За исключением @intlayer/swc), суб-пакеты @intlayer/* не предназначены для прямого использования. Поэтому мы рекомендуем не устанавливать их напрямую.

    Решение

    1. Убедитесь, что версии основного пакета и суб-пакетов совпадают.
    {  "dependencies": {    "intlayer": "7.0.1",    "react-intlayer": "7.0.0", // Неверная версия, должна быть 7.0.1  },  "devDependencies": {    "intlayer-editor": "7.0.1",  },}
    1. Попробуйте удалить lockfile и папку node_modules, затем переустановить зависимости.

    Иногда менеджер пакетов сохраняет старую версию суб-пакетов в lockfile или кэше. Чтобы исправить это, можно попробовать удалить lockfile и папку node_modules, а затем заново установить зависимости.

    rm -rf package-lock.json node_modulesnpm install
    1. Проверьте глобальную установку

    Рекомендуется устанавливать intlayer или intlayer-cli глобально для доступа к CLI-командам. Если глобальная версия отличается от локальной, менеджер пакетов может использовать неправильную версию.

    Проверка, установлен ли пакет глобально

    npm list -g --depth=0
    npm list -g --depth=0 | grep intlayer
    yarn global list
    pnpm list -g --depth=0

    Исправление возможных конфликтов глобальных зависимостей

    npm uninstall -g intlayer intlayer-cli
    yarn global remove intlayer intlayer-cli
    pnpm remove -g intlayer intlayer-cli
    1. Попробуйте очистить кэш

    В некоторых средах, таких как docker, github actions или платформах веб-хостинга, например Vercel, может присутствовать кэш. Вы можете попробовать очистить кэш и повторить установку.

    Также можно попробовать очистить кэш вашего менеджера пакетов с помощью следующей команды:

    npm cache clean --force
    yarn cache clean
    pnpm cache clean