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

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

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

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

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

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

إنّ دعم المستودعات الأحادية مضمّن في عملية إعداد الواجهة الخلفية التي يتم استدعاؤها من خلال أمر CLI‏ Firebaseapphosting:backends:create. بعد إدخال هذه العملية وتحديد مستودع 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، سيتعذّر إنشاء التطبيق وستظهر رسالة تفيد بأنّ App Hosting لا يمكنها العثور على مشروع لاستهدافه داخل المستودع الأحادي Nx. وبالمثل، على مستخدمي Turborepo تحديد دليل تطبيق مستهدف لأنّه لا يوجد مفهوم لمشروع تلقائي في Turborepo.
  • بالنسبة إلى تطبيقات Nx + Angular، عليك استخدام أداة إنشاء تطبيقات Angular لإنشاء التطبيق. يتم تحديد أداة إنشاء تطبيقات Angular في project.json.