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

باستخدام المستودعات الأحادية، يمكنك تنظيم وإدارة مشاريع متعددة في دليل واحد. يوضّح هذا الدليل كيفية بدء نشر تطبيقات تستند إلى Turborepo أو 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

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

Nx

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

Turborepo

.
    ├── packages
    ├── apps
    │   └── target-app
    │       ├── package.json
    │       └── src
    │           └── ...
    ├── turbo.json
    ├── package.json
    └── package-lock.json

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

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

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