שימוש במונורפוס עם אירוח אפליקציות

בעזרת מאגרים מונוליתיים אפשר לארגן ולנהל כמה פרויקטים בספרייה אחת. המדריך הזה מתאר איך להתחיל לפרוס אפליקציות מבוססות Nx עם App Hosting

פריסה של מאגרים מונוליתיים באמצעות Firebase CLI

התמיכה ב-Monorepo מובנית בתהליך ההגדרה של הקצה העורפי, שמופעל על ידי הפקודה apphosting:backends:create ב-CLI של Firebase. אחרי שמזינים את התהליך הזה ומציינים את המאגר שבחרתם ב-GitHub, מופיעה בקשה לציין את תיקיית השורש של האפליקציה ביחס למאגר. בשלב הזה, מעבירים את הנתיב לאפליקציה שרוצים לפרוס בתוך המאגר המאוחד:

$ firebase apphosting:backends:create --project [project-name] --location us-central1
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.

פריסת מונורפוסים באמצעות מסוף Firebase

התמיכה במונוrepo משולבת בתהליך ההגדרה של הקצה העורפי הגרפי ב-Firebase במסוף. כשמוצגת ההודעה 'ספריית בסיס' בקטע Deployment settings (הגדרות פריסה), מציינים את הנתיב לאפליקציה שרוצים לפרוס בתוך המונורפו:

צילום מסך של תצוגת היצירה של הקצה העורפי של המסוף

פתרון בעיות בפריסה מונו-רפואית

  • אם יוצאים מתיקיית השורש שדה ריק במהלך הגדרת הקצה העורפי, אפליקציה ייתכן שהמארח עדיין יוכל ליצור ולפרוס את פרויקט היעד של המשתמש אם הוא מצוין ב-defaultProject של קובץ ה-nx.json הקשור הגדרה .
  • אם לא מציינים אף ספריית שורש או שדה defaultProject, לאחר מכן ה-build ייכשל ותוצג הודעה ל-App Hosting לא למצוא פרויקט לטירגוט בתוך המונורפו של Nx.
  • לאפליקציות Nx + Angular, צריך להשתמש באפליקציה Angular builder כדי ליצור את האפליקציה. ה-builder של אפליקציות Angular מצוין ב-project.json