الربط المحلي
المشكلة
Section titled “المشكلة”عند تطوير الأطراف الأصلية، كان تعديل الرمز يتطلب انتظار إصدار نسخة من core ثم ترقية التبعية، مما يجعل حلقة التغذية الراجعة طويلة جدًا.
الآلية
Section titled “الآلية”في تخطيط العائلة (جميع المستودعات ضمن الدليل الأصل نفسه)، تقرأ المستودعات الأصلية في التطوير المحلي منتجات dist/ الخاصة بهذا المستودع عبر تحليل محلي مع حراسة للتحقق من الوجود: بعد تعديل الرموز، يكفي إعادة تشغيل pnpm codegen في هذا المستودع ليصبح التغيير فوريًا، دون الحاجة إلى النشر. وعند عدم وجود هذا المستودع (مثل استنساخ مستودع واحد في CI) يتم التراجع تلقائيًا إلى الحزم المنشورة على كل منصة.
آلية الحراسة مماثلة هيكليًا لـ createLocalShareAliases الخاصة بسلالة الويب: يتم التحقق من existsSync(<coreRoot>/dist/android) (لا يُعتبر أن codegen قد شُغِّل في هذا المستودع إلا عند وجود منتجات android)، وإذا لم يوجد، لا يُحقن المسار المحلي.
طريقة الحقن في كل طرف
Section titled “طريقة الحقن في كل طرف”ينفّذ كل مستودع أصلي ذلك بنفسه، وهذا المستودع لا يفرض شيئًا:
| المنصة | طريقة الحقن |
|---|---|
| Android | دليل مستودع Maven محلي في Gradle |
| iOS | تبعية مسار محلية عبر SPM |
| HarmonyOS | تبعية file: عبر ohpm |
| C | add_subdirectory في CMake أو مسار الملفات الرأسية |
سير العمل النموذجي
Section titled “سير العمل النموذجي”1. تعديل tokens/*.json في هذا المستودع2. pnpm codegen ← يتحدث dist/ فورًا3. البناء/التشغيل مباشرةً في المستودع الأصلي ← الرموز الجديدة ساريةسكربت scripts/resolve-local-tokens.mjs هو التنفيذ الفعلي لآلية الحراسة هذه.
ملاحظات
Section titled “ملاحظات”- الربط المحلي متاح فقط في تخطيط العائلة (جميع المستودعات ضمن الدليل الأصل نفسه).
- يقرأ الربط من
dist/، لذا يجب تشغيل codegen أولًا بعد تعديل الرموز. - بعد الإصدار، ينبغي للأطراف الأصلية العودة إلى نسخة التبعية الرسمية، تجنّبًا للاعتماد طويل الأمد على المسارات المحلية.
Copyright © 2024-2026 FengMo WenXue