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

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

פריסת מאגרי קוד מונו עם מסוף Firebase

התמיכה ב-monorepo מוטמעת בתהליך ההגדרה הגרפי של העורף במסוף Firebase. כשמוצגת בקשה להזין "תיקיית שורש" בקטע "הגדרות פריסה": מציינים את הנתיב לאפליקציה שרוצים לפרוס בתוך המאגר המשותף:

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

פריסת מאגרי קוד מונו עם Firebase CLI

התמיכה ב-Monorepo מוטמעת בתהליך ההגדרה של ה-Backend שמופעל על ידי פקודת Firebase CLI‏ 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

לדוגמה, אלה הנכסים שיפרסו בהינתן מבנה הפרויקט הבא של Nx והאפליקציה target-app שרוצים ליצור ולפרוס:

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

ספריית הבסיס של האפליקציה ביחס למאגר היא apps/target-app.

פתרון בעיות בפריסת monorepo

  • אם לא מציינים את השדה 'ספריית הבסיס', הבנייה תיכשל ותוצג הודעה שלפיה App Hosting לא יכול למצוא פרויקט לטירגוט בתוך מאגר Nx.
  • באפליקציות Nx + Angular, צריך להשתמש בכלי ליצירת אפליקציות Angular כדי ליצור את האפליקציה. הכלי ליצירת אפליקציות Angular מוגדר ב-project.json