استخدام المستودع الأحادي مع "استضافة التطبيقات"

باستخدام المستودعات الأحادية، يمكنك تنظيم وإدارة مشاريع متعددة في دليل واحد. يوضّح هذا الدليل كيفية بدء نشر تطبيقات تستند إلى Nx باستخدام App Hosting.

نشر المستودعات الأحادية باستخدام "وحدة تحكّم Firebase"

تتوفّر إمكانية استخدام مستودع واحد في عملية إعداد الخلفية الرسومية في وحدة تحكّم Firebase. عندما يُطلب منك إدخال "دليل الجذر" ضِمن "إعدادات النشر"، حدِّد مسار التطبيق الذي تريد نشره داخل مستودع الرمز الموحّد:

لقطة شاشة لعرض إنشاء الخلفية في وحدة التحكّم

نشر مستودعات متعددة باستخدام Firebase CLI

يتوفّر دعم Monorepo في مسار إعداد الخلفية الذي يتم استدعاؤه من خلال الأمر apphosting:backends:create في واجهة سطر الأوامر الخاصة بـ Firebase. بعد إدخال هذا المسار وتحديد مستودع GitHub الذي اخترته، سيُطلب منك تحديد الدليل الجذر لتطبيقك بالنسبة إلى المستودع. عند ظهور هذا الطلب، أدخِل مسار التطبيق الذي تريد نشره داخل المستودع الأحادي:

$ firebase apphosting:backends:create --project [project-name]
i  === Import a GitHub repository
✔  Connected with GitHub successfully

? Which GitHub repo do you want to deploy? gh-username/nx-monorepo
? Specify your app's root directory relative to your repository path/to/app

على سبيل المثال، إليك مواد العرض التي سيتم نشرها في حال توفّر بنية مشروع Nx التالية واختيار "target-app" كتطبيق تريد إنشاءه ونشره:

.
    ├── lib
    ├── apps
    │   └── target-app
    │       ├── project.json
    │       └── src
    │           └── ...
    ├── nx.json
    ├── package-lock.json
    └── package.json

دليل الجذر للتطبيق بالنسبة إلى المستودع هو apps/target-app.

تحديد المشاكل وحلّها في نشر المستودعات المتكاملة

  • إذا تركت حقل "الدليل الجذر" فارغًا أثناء إعداد الخلفية، قد يظل بإمكان App Hosting إنشاء المشروع المستهدف للمستخدم ونشره إذا تم تحديده في defaultProject لملف إعداد nx.json ذي الصلة.
  • إذا لم تحدّد الحقل "الدليل الجذر" أو defaultProject، سيتعذّر إنشاء الإصدار وسيتم عرض رسالة تفيد بأنّه App Hosting لا يمكن العثور على مشروع لاستهدافه داخل مستودع Nx الأحادي.
  • بالنسبة إلى تطبيقات Nx وAngular، يجب استخدام أداة إنشاء تطبيقات Angular لإنشاء التطبيق. يتم تحديد أداة إنشاء تطبيقات Angular في project.json