接收有关即将发布的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";  |          ~~~~~~~~~~~~~~~~✖ 错误  在 "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";  |                            ~~~~~~~~~~~~~~~~~~~~

    原因

    基础包如 intlayerreact-intlayerreact-native-intlayervue-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. 尝试删除锁文件和 node_modules 文件夹并重新安装依赖。

    有时,包管理器会在缓存的锁文件中保留子包的旧版本。为了解决这个问题,你可以尝试删除锁文件和 node_modules 文件夹,然后重新安装依赖。

    rm -rf package-lock.json node_modulesnpm install
    1. 检查全局安装

    我们建议全局安装 intlayerintlayer-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