استخدم مساعدك المفضل للملخص واستخدم هذه الصفحة والموفر AI الذي تريده
هذه الوثيقة غير محدثة، تم تحديث النسخة الأساسية في 25 يونيو 2026.
الانتقال إلى الوثيقة الإنجليزيةتاريخ الإصدارات
- "إنشاء التوثيق"v8.0.021/1/2026
تمت ترجمة محتوى هذه الصفحة باستخدام الذكاء الاصطناعي.
اعرض آخر نسخة المحتوى الأصلي باللغة الإنكليزيةإذا كان لديك فكرة لتحسين هذه الوثيقة، فلا تتردد في المساهمة من خلال تقديم طلب سحب على GitHub.
رابط GitHub للتوثيقنسخ الـ Markdown من المستند إلى الحافظة
توثيق مكوّن intlayerPrune لـ Vite
يُستخدم المكوّن الإضافي intlayerPrune الخاص بـ Vite لإجراء tree-shaking وإزالة (prune) القواميس غير المستخدمة من حزمة التطبيق الخاصة بك. يساعد ذلك في تقليل حجم الحزمة النهائي باشتراط تضمين المحتوى متعدد اللغات الضروري فقط.
البرنامج المساعد مضمن بالفعل ومكوّن تلقائياً عند استخدام intlayer(). تحتاج فقط إلى تسجيله يدوياً إذا كنت تقوم بتكوين مكدس المكونات الإضافية بنفسك.
الاستخدام
كجزء من intlayer() (موصى به)
قم بتفعيل التنقية من خلال إعدادات Intlayer والمكون الرئيسي يتعامل مع كل شيء:
نسخ الكود إلى الحافظة
نسخ الكود إلى الحافظة
مستقل
إذا كنت تؤلف مكدس المكونات الإضافية يدويًا، فإن intlayerPrune و intlayerMinify يشتركان في كائن PruneContext يجب إنشاؤه مرة واحدة وتمريره إلى كليهما:
نسخ الكود إلى الحافظة
كيف يعمل
1. تحليل الاستخدام (buildStart)
أثناء buildStart، يقوم plugin intlayerOptimize (وهو أيضًا جزء من intlayer()) بفحص كل ملف مصدر مكون مدرج في build.filesList. لكل استدعاء useIntlayer('key') أو getIntlayer('key')، يسجل بالضبط الحقول التي تم الوصول إليها، على سبيل المثال:
نسخ الكود إلى الحافظة
وهذا يبني pruneContext.fieldUsageMap قبل تشغيل أي استدعاءات transform.
2. تقليص JSON (transform, enforce: 'pre')
عندما تعالج Vite ملف قاموس JSON مُترجَم، يعترض intlayerPrune عملية التحويل قبل تحويل JSON → ESM المدمج في Vite. يقرأ خريطة استخدام الحقول من pruneContext ويزيل أي حقل محتوى غير مسجل في مجموعة الاستخدام.
تُدعم شكلان من المحتوى:
- القواميیس الثابتة —
{ nodeType: "translation", translation: { en: {...}, fr: {...} } }. يتم تقليص الحقول لكل لغة داخلtranslation. - القواموس الديناميكية (لكل لغة) —
{ fieldA: ..., fieldB: ... }مسطحة. يتم تقليص الحقول على المستوى الأعلى.
3. حالات خاصة
إذا لم يتمكن النظام من التعرف على هيكل محتوى القاموس (على سبيل المثال، شكل متداخل غير عادي)، يتم إضافته إلى pruneContext.dictionariesWithEdgeCases وتركه دون تعديل. يتم تسجيل تحذير. يتخطى intlayerMinify أيضاً هذه القواميس.
4. خريطة إعادة تسمية الحقول
عند نجاح التقليص، يكتب intlayerPrune أيضًا pruneContext.dictionaryKeyToFieldRenameMap — وهي خريطة من أسماء الحقول الأصلية إلى اسم مستعار قصير. يقرأ intlayerMinify هذه الخريطة لإعادة تسمية الحقول في JSON الناتج، وتحديث Babel الخاص بـ intlayerOptimize يحدّث عمليات الوصول إلى الخصائص في ملفات المصدر وفقًا لذلك.
شروط التفعيل
يكون intlayerPrune نشطًا فقط عندما تكون جميع الشروط التالية محققة:
- أمر Vite هو
build. - تكون
build.optimizeبقيمةtrue(أوundefined، والتي تُستخدم افتراضيًا كـtrueلعمليات البناء). - تكون
build.purgeبقيمةtrueفي إعدادات Intlayer الخاصة بك.
يظل نشطًا عندما يكون editor.enabled في وضع true: يقوم المحرر المرئي بحل كل تعديل عبر dictionaryKey وkeyPath مقابل القواميس غير المدمجة، التي لا يلمسها هذا المكوّن الإضافي مطلقًا، والحقل الذي تمت إزالته هو حقل لا يقرأه أي مكوّن — لذا لا يُعرض أبدًا ولا يمكن اختياره في الصفحة.
