サブパッケージ @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/* のサブパッケージは直接使用することを意図していません。したがって、直接インストールしないことを推奨します。
解決策
- メインパッケージとサブパッケージのバージョンが同じであることを確認してください。
{ "dependencies": { "intlayer": "7.0.1", "react-intlayer": "7.0.0", // バージョンが間違っています。7.0.1であるべきです }, "devDependencies": { "intlayer-editor": "7.0.1", },}- lockfile と node_modules フォルダを削除して依存関係を再インストールしてみてください。
パッケージマネージャーは、キャッシュ内の lockfile にサブパッケージの古いバージョンを保持していることがあります。これを修正するには、lockfile と node_modules フォルダを削除して依存関係を再インストールしてみてください。
rm -rf package-lock.json node_modulesnpm install- グローバルインストールを確認する
CLI コマンドにアクセスするために、intlayer または intlayer-cli をグローバルにインストールすることを推奨します。グローバルバージョンがローカルバージョンと異なる場合、パッケージマネージャーは誤ったバージョンを認識する可能性があります。
パッケージがグローバルにインストールされているか確認する
npm list -g --depth=0npm list -g --depth=0 | grep intlayeryarn global listpnpm list -g --depth=0潜在的なグローバル依存関係の競合を修正する
npm uninstall -g intlayer intlayer-cliyarn global remove intlayer intlayer-clipnpm remove -g intlayer intlayer-cli- キャッシュのクリーニングを試みる
Docker、GitHub Actions、またはVercelのようなウェブホスティングプラットフォームなどの環境では、キャッシュが存在する場合があります。キャッシュをクリアしてからインストールを再試行してみてください。
また、以下のコマンドでパッケージマネージャーのキャッシュをクリアすることもできます。
npm cache clean --forceyarn cache cleanpnpm cache clean