בעזרת monorepos, אתם יכולים לארגן ולנהל כמה פרויקטים בספרייה אחת. במדריך הזה מוסבר איך מתחילים לפרוס אפליקציות מבוססות 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 לא יכול למצוא פרויקט לטירגוט בתוך ה-monorepo של Nx.
- באפליקציות Nx + Angular, צריך להשתמש בכלי ליצירת אפליקציות Angular כדי ליצור את האפליקציה. הכלי ליצירת אפליקציות Angular מוגדר ב-
project.json