استخدام المستودع الأحادي مع "استضافة التطبيقات"
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
باستخدام المستودعات الأحادية، يمكنك تنظيم وإدارة مشاريع متعددة في دليل واحد. يوضّح هذا الدليل كيفية البدء في نشر تطبيقات تستند إلى 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 العثور على مشروع لاستهدافه داخل مستودع Nx الأحادي.
- بالنسبة إلى تطبيقات Nx وAngular، يجب استخدام أداة إنشاء تطبيقات Angular لإنشاء التطبيق. يتم تحديد أداة إنشاء تطبيقات Angular في
project.json
إنّ محتوى هذه الصفحة مرخّص بموجب ترخيص Creative Commons Attribution 4.0 ما لم يُنصّ على خلاف ذلك، ونماذج الرموز مرخّصة بموجب ترخيص Apache 2.0. للاطّلاع على التفاصيل، يُرجى مراجعة سياسات موقع Google Developers. إنّ Java هي علامة تجارية مسجَّلة لشركة Oracle و/أو شركائها التابعين.
تاريخ التعديل الأخير: 2025-08-20 (حسب التوقيت العالمي المتفَّق عليه)
[null,null,["تاريخ التعديل الأخير: 2025-08-20 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["\u003cbr /\u003e\n\nWith monorepos, you can organize and manage multiple projects in a single\ndirectory. This guide describes how to get started deploying Nx-based apps with\nApp Hosting.\n\nDeploy monorepos with the Firebase console\n\nMonorepo support is built into the graphical backend setup flow in the Firebase\nconsole. When prompted for a \"Root directory\" under \"Deployment settings,\"\nspecify the path to the application you want to deploy inside the monorepo:\n\nDeploy monorepos with the Firebase CLI\n\nMonorepo support is built into the backend setup flow invoked by the Firebase\nCLI command `apphosting:backends:create`. After you enter this flow and specify\nyour chosen GitHub repository, you are prompted to specify your app's root\ndirectory relative to your repository; at this prompt, pass the path to the\napplication you want to deploy inside the monorepo: \n\n $ firebase apphosting:backends:create --project [project-name]\n i === Import a GitHub repository\n ✔ Connected with GitHub successfully\n\n ? Which GitHub repo do you want to deploy? gh-username/nx-monorepo\n ? Specify your app's root directory relative to your repository path/to/app\n\nFor example, here are the assets that would be deployed given the following Nx\nproject structure and \"target-app\" as the application you want to build and\ndeploy: \n\n .\n ├── lib\n ├── apps\n │ └── target-app\n │ ├── project.json\n │ └── src\n │ └── ...\n ├── nx.json\n ├── package-lock.json\n └── package.json\n\nThe app's root directory relative to your repository is `apps/target-app`.\n\nTroubleshooting monorepo deployment\n\n- If you do not specify the \"root directory\" field, then the build will fail and display a message that App Hosting cannot find a project to target inside the Nx monorepo.\n- For Nx + Angular applications, you must use the [Angular application\n builder](https://angular.io/guide/esbuild) to build the application. The Angular application builder is specified in `project.json`"]]