استخدم مساعدك المفضل للملخص واستخدم هذه الصفحة والموفر AI الذي تريده
تاريخ الإصدارات
- "بدء التوثيق"v9.0.0٢٥/٦/٢٠٢٦
تمت ترجمة محتوى هذه الصفحة باستخدام الذكاء الاصطناعي.
اعرض آخر نسخة المحتوى الأصلي باللغة الإنكليزيةIf you have an idea for improving this documentation, please feel free to contribute by submitting a pull request on GitHub.
GitHub link to the documentationCopy doc Markdown to clipboard
intlayerMinify
intlayerMinify هو عبارة عن إضافة لـ Vite يقوم بتصغير ملفات قاموس JSON المجمعة أثناء عملية البناء للإنتاج. يقوم بإزالة جميع الفراغات غير الضرورية، وعند دمجه مع intlayerPrune ، يعيد تسمية حقول المحتوى اختياريًا إلى أسماء مستعارة أبجدية قصيرة (a و b و c ، ...) لتقليل حجم الحزمة (bundle size) بشكل أكبر.
تم تضمين هذا المكون الإضافي وتهيئته تلقائيًا بالفعل عند استخدامك لـ intlayer(). تحتاج فقط إلى تسجيله يدويًا إذا كنت تقوم بتركيب مصفوفة الإضافات بنفسك.
الاستخدام
نسخ الكود إلى الحافظة
// vite.config.tsimport { defineConfig } from "vite";import { intlayerMinify, intlayerPrune } from "vite-intlayer";import { createPruneContext } from "@intlayer/babel";const pruneContext = createPruneContext();export default defineConfig({ plugins: [ intlayerPrune(intlayerConfig, pruneContext), intlayerMinify(intlayerConfig, pruneContext), ],});شروط التفعيل
يكون intlayerMinify نشطًا فقط عندما تكون الشروط الثلاثة التالية صحيحة:
- أمر Vite هو
build(وليسserve/ dev). - إعداد
build.optimizeهوtrue(أوundefined، والذي يتم تعيينه افتراضيًا إلىtrueلعمليات البناء). - إعداد
build.minifyهوtrueفي إعدادات Intlayer الخاصة بك.
يتم إيقاف تفعيله تلقائيًا عندما يكون editor.enabled هو true لأن المحرر يحتاج إلى محتوى القاموس الكامل والمقروء بشريًا.
ما الذي يتم تصغيره
يستهدف الإضافة موقعين من القاموس (كما هو محدد من intlayer.system):
dictionariesDir— قواميس ثابتة لجميع اللغات (مثل.intlayer/dictionaries/*.json)dynamicDictionariesDir— قواميس ديناميكية لكل لغة
قواميس وضع الجلب (fetchDictionariesDir) لا يتم تصغيرها أبدًا لأنها تُقدم من واجهة برمجية (API) بعيدة في وقت التشغيل باستخدام أسماء حقولها الأصلية. إعادة تسمية الحقول ستنشئ عدم تطابق بين استجابة الخادم والوصول إلى الخصائص على جانب العميل.
تشويه أسماء الحقول (Property minification)
عندما يقوم intlayerPrune بتحليل قاعدة الكود وتعبئة الخريطة pruneContext.dictionaryKeyToFieldRenameMap ، يقوم intlayerMinify أيضًا بإعادة تسمية أسماء حقول المحتوى إلى أسماء مستعارة قصيرة. على سبيل المثال:
نسخ الكود إلى الحافظة
// قبل التشويه{ "key": "myDict", "content": { "title": "Hello", "description": "World" } }// بعد التشويه{ "key": "myDict", "content": { "a": "Hello", "b": "World" } }تتم إعادة تسمية عمليات الوصول إلى الخصائص في الملف المصدر المقابل بواسطة مرحلة Babel داخل intlayerOptimize ، لذا يظل سلوك وقت التشغيل دون تغيير.
لا يتم إعادة تسمية حقول Intlayer الداخلية (nodeType و translation وما إلى ذلك) أبدًا.
قواميس الحالات الخاصة (Edge-cases)
يتم تخطي القواميس المشار إليها في pruneContext.dictionariesWithEdgeCases (الشذوذ الهيكلي الذي تم اكتشافه أثناء مرحلة التقليم) تمامًا — لا يتم تصغيرها ولا تشويهها — لتجنب شحن بيانات تالفة.
المجموعات المؤهلة (المجموعات / المتغيرات / السجلات الفوقية)
بالنسبة للقواميس التي تحتوي على مصفوفة qualifierTypes (المجموعات والمتغيرات والسجلات الفوقية) ، يحتفظ المكون الإضافي بمصفوفة qualifierTypes وخريطة meta الجانبية حرفيًا. يتم تشويه أسماء الحقول الخاصة بمدخلات content فقط. لا يتم لمس المفاتيح المركبة (المستخدمة لمطابقة المحدد في وقت التشغيل) أبدًا.