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