Firebase App Hosting מיועד במיוחד לתמיכה בפיתוח מודרני של אפליקציות אינטרנט שמבוססות על מסגרות. בדף הזה מפורטים הכלים והמסגרות ש-App Hosting תומך בהם ישירות, והוא משמש כנקודת התחלה ללימוד על מסגרות וכלים קשורים.
Frameworks לאינטרנט ו-App Hosting
App Hosting מספקת שני רמות תמיכה רחבות למסגרות אינטרנט מודרניות: תמיכה מוגדרת מראש בבנייה ובפריסה, ותמיכה ברמת הקהילה באמצעות תרומות קוד פתוח בהתאם למפרט של חבילת הפלט. בשני המקרים, רכיב framework adapter מאפשר שילוב של מסגרת ספציפית עם App Hosting.
Frameworks עם תמיכה מוגדרת מראש בבנייה ובפריסה
עם תמיכה מוגדרת מראש בבנייה ובפריסה, Firebase מזהה את המסגרת שבה אתם משתמשים על ידי בדיקת הקובץ package-lock.json או קובץ נעילה אחר, ומבצע אופטימיזציה של תהליכי הבנייה והפריסה של האפליקציה. Google מחויבת לשמור על תמיכה במסגרות האלה, וצוות התמיכה של Firebase יכול לקבל דיווחים על בעיות ובקשות לתכונות.
רמת התמיכה הזו ניתנת עבור:
- Next.js
- Angular
פרטים על גרסאות ספציפיות ורמות תמיכה זמינים בלוחות הזמנים של התמיכה.
אם תנסו לפרוס אפליקציית Node.js שחסר בה קובץ נעילה, App Hosting
ה-build של האפליקציה ייכשל והיא לא תפעל. כדי ליצור את package-lock.json, מריצים את הפקודה npm install בספריית הבסיס.
מסגרות נתמכות על ידי הקהילה
בנוסף ל-Next.js ול-Angular, App Hosting תומך גם בכל מסגרת אינטרנט שיכולה לספק פלט של build שתואם למפרט של חבילת הפלט שלנו. מחברי מסגרות יכולים להשתמש במפרט של חבילת הפלט כדי לוודא שהמסגרת שלהם נתמכת על ידי App Hosting. לדוגמה, צוות Nitro תומך ב-Nuxt, שהיא מסגרת פופולרית, והצוות הזה יצר מתאם Firebase כדי לאפשר פריסה של אפליקציות Nuxt ב-App Hosting.
אם רוצים לראות עוד frameworks שנתמכים על ידי App Hosting, אפשר ליצור מתאם framework או לפנות למתחזקים של ה-framework כדי להמיר את פלט הבנייה לפורמט App Hosting. המתאמים של Next.js ו-Angular הם דוגמאות טובות לכל מי שיוצר מתאם.
מידע על מסגרות נתמכות על ידי הקהילה זמין בקוד פתוח של Firebase. בעיות ובקשות לתכונות במסגרות שנתמכות על ידי הקהילה צריכות להיות מופנות לקהילת הקוד הפתוח או ליוצרי המסגרת. במקרים מסוימים, Google יכולה לעזור, אבל הקהילה היא קו התמיכה הראשון למתאמים האלה.
App Hosting מתאמי מסגרות
ב-App Hosting, התמיכה במסגרות מוגדרות מראש ובמסגרות שנתמכות על ידי הקהילה ניתנת באמצעות מתאמי מסגרות. למתאמי App Hosting framework יש שני תפקידים מרכזיים:
- הם מנתחים את קוד המקור ואת קובצי ההגדרות הספציפיים למסגרת (כמו
next.config.js) ומפיקים חבילת פלט שאפשר לעבד באמצעות שאר התשתית של App Hosting. - הם מריצים את פקודת ה-build של האפליקציה כדי ליצור נכסים סטטיים וליצור גרסה אופטימלית של האפליקציה לייצור.
מתאמי Framework בונים את אפליקציית Node.js באמצעות npm run build, והם פועלים בצורה הכי טובה עם סקריפטים לבנייה שמוגדרים כברירת מחדל לכל Framework: next build ל-Next.js ו-ng build ל-Angular. App Hosting ינסה לבצע בנייה באמצעות פקודות בנייה מותאמות אישית, אבל לא יכול להבטיח הצלחה באופן מהימן. אתם יכולים להגדיר סקריפטים חלופיים ל-build ולהרצה ב-apphosting.yaml.
הקוד של מתאמי Next.js ו-Angular זמין ב-firebase-framework-tools.
זמני ההפעלה של App Hosting
אחרי ש-App Hosting בונה את אפליקציית Node.js ומשיק אותה, היא פועלת בגרסה Cloud Run. לכן, גרסת זמן הריצה של האפליקציה צריכה להיות בטווח הנתמך של Cloud Run וגם בטווח של מסגרת האינטרנט שבחרתם. במקרה של תמיכה מוגדרת מראש ב-Angular וב-Next.js, המשמעות היא שגרסאות Node.js הבאות נתמכות:
- Next.js 13.5.x ואילך
- Angular 18.2.x ומעלה
- Node.js 20 ואילך
App Hosting לא מספק באופן אוטומטי תמיכה פעילה בגרסאות חדשות של מסגרות. גרסאות חדשות יותר מהגרסה שמוגדרת כרגע כ 'פעילה' ייחשבו כגרסאות בסטטוס 'תצוגה מקדימה' עד שיסומנו באופן רשמי כ'פעילות' ב-App Hosting.
App Hosting תומך בתמיכה לטווח ארוך (LTS) בגרסה המשנית האחרונה של גרסה ראשית למשך שנה מתקופת זכאות לתמיכה הפעילה שלה, בתנאי שתעדכנו באופן עקבי לגרסאות התיקון האחרונות בגרסה המשנית הזו. פרטים לגבי Next.js ו-Angular מופיעים בטבלאות הבאות.
best-effort.לוח הזמנים לתמיכה ב-Next.js
| גרסה | סטטוס | הוצאה משימוש |
|---|---|---|
| 13.5.x | lts | 2026-10-9 |
| 14.2.x | lts | 2026-10-9 |
| 15.0.x | פעיל | not before 2025-10-9 |
| 15.1.x | פעיל | not before 2025-10-9 |
| 15.2.x | פעיל | - |
לוח הזמנים לתמיכה ב-Angular
| גרסה | סטטוס | הוצאה משימוש |
|---|---|---|
| 18.2.x | lts | 2026-10-9 |
| 19.0.x | פעיל | not before 2025-10-9 |
| 19.1.x | פעיל | not before 2025-10-9 |
| 19.2.x | פעיל | - |
עדכונים אוטומטיים של תמונות בסיס (ABIU)
עדכונים אוטומטיים של תמונת הבסיס (ABIU) הם תכונה שמחילים באופן אוטומטי תיקוני אבטחה על סביבת זמן הריצה הבסיסית, בלי שתצטרכו להפעיל השקה חדשה של האפליקציה.
App Hosting כברירת מחדל, ABIU מופעלת עבור קצה עורפי חדש, עם הדרישות הספציפיות הבאות:
- סביבות ריצה עם גרסאות: כדי להשתמש ב-ABIU, צריך לציין סביבת ריצה עם גרסה (כמו
nodejs20, nodejs22, nodejs24). App Hosting תומך בגרסאות Node.js עם מספרים זוגיים, בדומה לתמיכה של Cloud Run. - התאמה לקובץ package.json: גרסת Node שבוחרים בשדה App Hosting צריכה להיות תואמת לגרסה שצוינה בשדה
enginesבקובץpackage.json. אם יש אי התאמה, תופיע שגיאת זמן בנייה מ-Cloud Build. בכל פעם שמשנים את השדהengines, חשוב לעדכן את זמן הריצה של ה-backend לפני הפריסה.
השבתת ABIU
אם אתם רוצים להשבית את ABIU, אתם יכולים לעשות זאת במהלך ההצטרפות או על ידי בחירה באפשרות Not Specified (לא צוין) עבור זמן הריצה במסוף Firebase. כשמשתמשים בברירת מחדל nodejs ללא גרסה, התכונה 'הוספת מידע על התמונה' מושבתת באופן אוטומטי.
ניהול גרסאות זמן ריצה
אתם יכולים לראות ולשנות את גרסת זמן הריצה של העורף ואת ההעדפה של ABIU בכל שלב בכרטיסייה הגדרות בלוח הבקרה של App Hosting. עם זאת, חשוב לזכור שאם הגרסה החדשה לא תהיה תואמת לקוד שלכם, שינוי גרסת זמן הריצה עלול לגרום לשגיאות באפליקציה.
בסופו של דבר, גרסאות של זמן ריצה מגיעות לסוף מחזור החיים שלהן. חשוב לעדכן את סביבות זמן הריצה כדי למנוע שינויים שעלולים לשבור את הקוד:
- סביבות זמן ריצה שהוצאו משימוש: אם סביבת זמן הריצה שבחרתם תוצא משימוש, האפליקציה שלכם בדרך כלל תמשיך לפעול. תופיע אזהרה במסוף, ועליך לעבור לגרסה חדשה יותר בהקדם האפשרי. מידע נוסף מופיע בCloud Runמאמרי העזרה בנושא מחזור החיים של זמן הריצה.
- זמני ריצה שיצאו משימוש: זמני ריצה שיצאו משימוש לא נתמכים בכלל. לא תהיה לכם אפשרות ליצור גרסאות build או קצה עורפי חדשים באמצעות גרסה שיצאה משימוש, וניסיון לעשות זאת יוביל לשגיאת build. פריסות קיימות שפועלות בגרסאות שהוצאו משימוש עשויות להפסיק לפעול, ול-Cloud Run שמורה הזכות למחוק אותן.
רשימה מלאה של גרסאות Node נתמכות, גרסאות שהוצאו משימוש וגרסאות שהוצאו מכלל שימוש זמינה במסמכי Cloud Run Runtime Support. לפרטים טכניים נוספים על אופן הפעולה של עדכוני תמונות בסיס, אפשר לעיין במסמכי Cloud Run ABIU.
מנהלי חבילות
App Hosting משתמש ב-Cloud Native Buildpacks כדי להריץ את ההתקנה של יחסי התלות, ובונה את האפליקציה באמצעות npm, yarn או pnpm. אין תמיכה במנהלי חבילות אחרים, כמו JSR.
NPM
- NPM הוא מנהל החבילות שמוגדר כברירת מחדל.
- תלויות שאינן בסביבת ייצור נמחקות אחרי שה-build מסתיים בהצלחה.
- תוכלו לציין את הקטע של גרסת ה-NPM באמצעות השדה
engines.npmבקובץpackage.json.
כדור צמר
- אם כוללים את הקובץ
yarn.lockבפרויקט, משתמשים ב-Yarn במקום זאת. - תוכלו לציין את גרסת ה-Yarn שבה צריך להשתמש בשדה
engines.yarnאוpackageManagerבקובץpackage.json. - App Hosting תומך במצב Yarn2 PnP.
Pnpm
- אם כוללים את הקובץ
pnpm-lock.yamlבפרויקט, משתמשים ב-Pnpm במקום זאת. - תוכלו לציין את גרסת ה-Pnpm שבה צריך להשתמש בשדה
engines.pnpmאוpackageManagerבקובץpackage.json. - תוכלו לראות דוגמה שעובדת באפליקציה sample-node-pnpm. אפליקציה.
מאגרי קוד מסוג Monorepo ל-App Hosting
App Hosting תומך באפליקציות מבוססות Nx. הנחיות מפורטות זמינות במאמר בנושא שימוש ב-monorepos עם App Hosting.
הגרסאות הבאות של Nx נתמכות:
| גרסה | סטטוס | הוצאה משימוש |
|---|---|---|
| 19.5.x | תחזוקה | 2025-10-9 |
| 19.6.x | תחזוקה | 2025-10-9 |
| 19.7.x | תחזוקה | 2025-10-9 |
| 19.8.x | lts | 2026-10-9 |
| 20.0.x | פעיל | not before 2025-10-9 |
| 20.1.x | פעיל | not before 2025-10-9 |
| 20.2.x | פעיל | not before 2025-10-9 |
| 20.3.x | פעיל | not before 2025-10-9 |
| 20.4.x | פעיל | not before 2025-10-9 |
| 20.5.x | פעיל | not before 2025-10-9 |
| 20.6.x | פעיל | not before 2025-10-9 |
| 20.7.x | פעיל | — |
אם אתם צריכים תמיכה בסוגים אחרים של סביבות עבודה של monorepo, אתם יכולים להודיע לנו על כך ב-Firebase UserVoice.