المساهمة
التكنولوجيا المستخدمة وخلفية عامة
هنا نظرة عامة على سلسلة الأدوات وبيئة التشغيل لهذا المشروع:
للمشروع بأكمله، لدينا:
- Node.js >=20: بيئة عمل المكتبات الأساسية.
- Electron 29: بيئة التشغيل الفعلية للانشر.
- pnpm: لإدارة الحزم في الـ monorepo.
- TypeScript: يستخدم المشروع لغة TypeScript قدر الإمكان.
للعملية الرئيسية (Electron)، لدينا:
- esbuild: لبناء ملفات TypeScript الخاصة بالعملية الرئيسية.
لجانب العرض (الواجهة الأمامية البحتة):
- Vue: لبناء واجهات المستخدم.
- Vite: كمنظومة بناء.
- Vuetify: كمكتبة مكونات.
- Vue Composition API: جسر لواجهة البرمجة التكوينية لـ Vue 2. بمجرد ترقية Vuetify إلى Vue 3، ستتم ترقية Vue وإزالة هذا المكون.
هيكل المشروع وتصميمه
راجع DeepWiki للحصول على تفاصيل التصميم. يجب أن يغطي 90% من الحالات!
المساهمة
نوصي بشدة باستخدام VSCode لفتح المشروع.
البداية
الاستنساخ
استنسخ المشروع مع وسيط المودولات الفرعية --recurse-submodules:
git clone --recurse-submodules https://github.com/Voxelum/x-minecraft-launcherإذا نسيت إضافة الوسيط، ستحتاج إلى تهيئة وتحديث المودولات الفرعية للـ git يدوياً:
git submodule init
git submodule updateالتثبيت
ثبّت المشروع باستخدام pnpm:
pnpm installتعيين متغيرات البيئة
يجب تعيين الـ CURSEFORGE_API_KEY عن طريق إنشاء ملف .env تحت مجلد xmcl-electron-app. هذا الملف مضاف بالفعل في ملف .gitignore.
تذكر
لا تقم بتسريب مفتاح CURSEFORGE API الخاص بك
تشغيل اللانشر
ثم يمكنك تشغيل اللانشر.
لمستخدمي VSCode
اذهب إلى قسم Run and Debug واستخدم ملف التعريف Electron: Main (launch) لبدء تشغيل electron. (مفتاح الاختصار F5)
لغير مستخدمي VSCode
افتح نافذة ترمينال واحدة:
# تشغيل خادم التطوير للواجهة الأمامية
npm run dev:rendererافتح نافذة ترمينال أخرى:
# تشغيل مراقبة كود العملية الرئيسية
npm run dev:mainتحديث الكود أثناء التشغيل (Hot Change)
عندما تقوم بتعديل الكود وترغب في رؤية التحديثات على نسخة اللانشر قيد التشغيل:
لعملية العرض (البصرية)
يوفر Vite إعادة تحميل فورية، ويجب أن تتحدث تلقائياً. إذا حدث خطأ، يمكنك تحديث المتصفح بالضغط على Ctrl+R.
للعملية الرئيسية
إذا كنت تستخدم VSCode، بعد تغيير الكود، يمكنك النقر فوق زر إعادة التحميل في مصحح أخطاء VSCode.
إذا لم تكن تستخدم VSCode، فسيتم إغلاق Electron وإعادة تحميله تلقائياً.
العثور على مشكلة في نواة اللانشر
توجد نواة اللانشر في مشروع منفصل مكتوب بلغة TypeScript.
يرجى فتح تذكرة (issue) هناك إذا حددت أي مشكلة تتعلق به.
مصحح أخطاء VSCode
يتضمن المشروع إعدادات مصحح أخطاء VSCode. يمكنك إضافة نقطة توقف (breakpoint) واستكشاف الأخطاء. حالياً، تدعم طريقة تصحيح أخطاء VSCode العملية الرئيسية فقط (يمكنك استخدام Chrome Devtools لعملية العرض).
لدينا خياران الآن:
- Electron: Main (launch)
- Electron: Main (attach)
إذا استخدمت الخيار الأول، فسيقوم تلقائياً بربط مصحح الأخطاء بالنسخة قيد التشغيل.
إرسال الكود (Commit)
يتبع هذا المشروع نظام التسجيلات التقليدية. باختصار، يجب أن يكون السطر الأول من رسالة الإرسال كالتالي:
commit type: commit descriptionهناك عدة أنواع متاحة: feat (ميزة جديدة)، fix (إصلاح خطأ)، refactor (إعادة هيكلة)، style (تنسيق)، docs (توثيق)، chore (مهام دورية)، test (اختبارات).
سيتم رفض تعديلك إذا لم تتبع هذه القواعد.
كيفية البناء
يتطلب اللانشر تشغيل أمرين لبنائه:
أولاً، تحتاج إلى بناء كود الواجهة الأمامية:
pnpm build:rendererما لم يتم تغيير الكود الموجود تحت xmcl-keystone-ui فلا داعي لبنائه مجدداً.
ثم يمكنك بناء حزمة Electron المدمجة مع الواجهة الأمامية التي قمت ببنائها للتو:
pnpm build