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

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

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

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

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

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

تتوفّر إمكانية استخدام مستودع واحد في عملية إعداد الخلفية التي يتم تفعيلها من خلال الأمر Firebase في واجهة سطر الأوامر apphosting: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