تسجيل تطبيق React مخصص
الهدف
تثبيت تطبيق React مخصص في بيئة برفع حزمته، حتى تتمكن قشرة المنصة من تحميله بوصفه تطبيقًا هناك.
تبحث عن كيفية بناء التطبيق لا تثبيته؟ تفترض هذه الصفحة أن التطبيق موجود بالفعل وأنه حُزم. أما كتابته — إعداد المشروع، وضبط Module Federation، ومكوّن التطبيق، وحزمة Runtime SDK، والاختبار، والتحزيم — ففي بناء تطبيق React مخصص.
المتطلبات المسبقة
- أنت مسجّل الدخول إلى مركز التحكم الإداري بدور مسؤول المنصة.
- يوجد ناشر وحلّ يملكه ذلك الناشر.
- البيئة التي تثبّت فيها التطبيق نشطة.
- لديك حزمة التطبيق — ملف
.zipالذي ينتجهnpm run packفي مشروع التطبيق نفسه. يُكتب عادةً في مجلدpackage/بذلك المشروع ويُسمّى باسم التطبيق، مثلpar_sales_dashboard-2.0.1.zip.
الخطوات
- اختر البيئة التي ينبغي تثبيت التطبيق فيها من مُحدِّد الشريط العلوي.
- افتح الحلول، ثم افتح الحل الذي ينتمي إليه التطبيق.
- اختر التطبيقات المخصصة من تنقّل الحل. تسرد الصفحة التطبيقات التي ثبّتها هذا الحل من قبل في البيئة المختارة.
- اختر جديد. تُفتح لوحة على جانب الشاشة.
- اختر ملف حزمة التطبيق.
- اختر تسجيل تطبيق مخصص. يظهر التطبيق في قائمة ذلك الحل وتلك البيئة، وفي الصفحة الرئيسة لتلك البيئة داخل قشرة المنصة.
هذا كل النموذج. فالحزمة تقول أصلًا ما اسم التطبيق، وبأي نطاق Module Federation بُني، وأي وحدة يكشفها، وأي نطاقات صلاحيات يحتاجها — فلا شيء تكتبه، ولا شيء تخطئ في كتابته.
ما الذي يحدث خلف الكواليس
تفحص المنصة الأرشيف قبل تخزين أي شيء: حجمه، وعدد ملفاته، ومدى تمدده، وألّا يخرج أي مسار من المجلد، وأن كل ملف من نوع تخدمه المنصة. ثم تقرأ مانيفست التطبيق من داخل الأرشيف، وتتحقق منه مقابل مخطط مانيفست التطبيق المخصص، وتفحص الاسم المنطقي مقابل بادئة الناشر المالك.
يُخزَّن الأرشيف في قاعدة بيانات المنصة نفسها، ويُخدَم كود التطبيق من عنوان المنصة نفسه. وهذا ما يجعل الحل مكتفيًا بذاته: فتصديره يحمل الكود معه، ومن ثمّ يثبّت استيراده في Test أو Production تطبيقًا عاملًا بلا مضيف خارجي يبقيه أحد قائمًا.
وتثبيت التطبيق في بيئة لا يثبّته في أي بيئة أخرى؛ إنما ينتقل عند تصدير حلّه واستيراده هناك.
والرفع مجددًا يستبدل النسخة المثبَّتة. وهذه هي الدورة المعتادة أثناء العمل: ابنِ، ارفع، انظر، ثم ابنِ من جديد.
الوضع المستضاف، للتطوير وحده
أثناء كتابة تطبيق يمكنك تسجيله مستضافًا بدلًا من ذلك: تحمّل القشرة remoteEntry.js من خادم
التطوير لديك، فتحتفظ بإعادة التحميل الفوري ولا تُعيد التحزيم مع كل تغيير. وترفض المنصة التسجيل
المستضاف في أي بيئة ليست بيئة تطوير، لأن تطبيقًا يعيش كوده في مكان آخر تطبيقٌ لا يستطيع
حلُّه حمله.
استكشاف الأخطاء
- «Custom app … must start with the publisher prefix …_.» — لا يبدأ
logicalNameفيpackage.jsonالخاص بالتطبيق ببادئة الناشر المالك. صحّحه هناك وأعد بناء الحزمة؛ فالاسم يأتي من البناء لا من هذه الشاشة. - «The package manifest is invalid: …» — لا يطابق
parsware.jsonداخل الأرشيف الشكل المتوقع. يكتبهparsware-pack، ولذا يعني هذا غالبًا أن الحزمة عُدِّلت يدويًا أو بُنيت بنسخة أقدم من الأداة. - «… holds a CustomControl, not a CustomApp.» — هذه حزمة عنصر تحكم مخصص. ثبّتها من صفحة عناصر التحكم المخصصة.
- «Custom app … is already installed in this environment by another solution.» — الاسم يملكه حل آخر. غيّر اسمك، أو أزل التسجيل الآخر أولًا.
- «Environment … is not a development environment» — أنت تسجّل تطبيقًا مستضافًا خارج التطوير. ارفع الحزمة بدلًا من ذلك.
- «Environment … is not active.» — انتظر حتى تنتهي تهيئة البيئة، أو اختر بيئة أخرى.
سيناريوهات ذات صلة
- بناء تطبيق React مخصص.
- فتح تطبيق React مخصص.
- تسجيل عنصر تحكم مخصص.
- إنشاء حل.