أحصل على خطأ متعلق بالحزم الفرعية @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"; | ~~~~~~~~~~~~~~~~~~~~السبب
الحزم الأساسية مثل 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", },}- حاول إزالة ملف القفل ومجلد node_modules وأعد تثبيت التبعيات.
أحيانًا، يحتفظ مدير الحزم بإصدار قديم من الحزم الفرعية في ملف القفل ضمن الكاش. لإصلاح ذلك، يمكنك محاولة إزالة ملف القفل ومجلد node_modules وأعد تثبيت التبعيات.
rm -rf package-lock.json node_modulesnpm install- تحقق من التثبيت العالمي
نوصي بتثبيت intlayer أو intlayer-cli بشكل عالمي للوصول إلى أوامر 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