از monorepos با میزبانی برنامه استفاده کنید

با monorepos، می‌توانید چندین پروژه را در یک دایرکتوری واحد سازماندهی و مدیریت کنید. این راهنما نحوه شروع به استقرار برنامه‌های مبتنی بر Turborepo یا Nx با App Hosting را شرح می‌دهد.

استقرار monorepos با کنسول Firebase

پشتیبانی از مونوریپو در جریان تنظیمات گرافیکی بک‌اند در کنسول فایربیس تعبیه شده است. وقتی از شما خواسته شد که در قسمت «تنظیمات استقرار»، «دایرکتوری ریشه» را وارد کنید، مسیر برنامه‌ای را که می‌خواهید درون مونوریپو مستقر کنید، مشخص کنید:

اسکرین شات از نمای ایجاد بک اند کنسول

استقرار monorepos با Firebase CLI

پشتیبانی از مونوریپو در جریان راه‌اندازی بک‌اند که توسط دستور apphosting:backends:create در فایربیس CLI فراخوانی می‌شود، تعبیه شده است. پس از ورود به این جریان و مشخص کردن مخزن گیت‌هاب انتخابی خود، از شما خواسته می‌شود که دایرکتوری ریشه برنامه خود را نسبت به مخزن خود مشخص کنید؛ در این اعلان، مسیر برنامه‌ای را که می‌خواهید درون مونوریپو مستقر کنید، وارد کنید:

$ 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" به عنوان برنامه‌ای که می‌خواهید بسازید و مستقر کنید، مستقر می‌شوند، آورده شده است:

ان ایکس

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

توربورپو

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

دایرکتوری ریشه برنامه نسبت به مخزن شما apps/target-app است.

عیب‌یابی استقرار مونوریپو

  • اگر فیلد "دایرکتوری ریشه" را برای Nx مشخص نکنید، ساخت با شکست مواجه می‌شود و پیامی نمایش داده می‌شود مبنی بر اینکه App Hosting نمی‌تواند پروژه‌ای را برای هدف قرار دادن در داخل Nx monorepo پیدا کند. به طور مشابه، کاربران Turborepo باید یک دایرکتوری برنامه هدف مشخص کنند زیرا مفهومی به عنوان پروژه پیش‌فرض در Turborepo وجود ندارد.
  • برای برنامه‌های Nx + Angular، باید از سازنده برنامه Angular برای ساخت برنامه استفاده کنید. سازنده برنامه Angular در project.json مشخص شده است.