מסגרות וכלים ל-App Hosting

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

אם רוצים לראות עוד frameworks שנתמכים על ידי App Hosting, אפשר ליצור מתאם framework או לפנות למתחזקים של ה-framework כדי להמיר את פלט הבנייה לפורמט App Hosting. המתאמים של Next.js ו-Angular הם דוגמאות טובות לכל מי שיוצר מתאם.

מידע על מסגרות נתמכות על ידי הקהילה זמין בקוד פתוח של Firebase. בעיות ובקשות לתכונות במסגרות שנתמכות על ידי הקהילה צריכות להיות מופנות לקהילת הקוד הפתוח או ליוצרי המסגרת. במקרים מסוימים, Google יכולה לעזור, אבל הקהילה היא קו התמיכה הראשון למתאמים האלה.

App Hosting מתאמי מסגרות

ב-App Hosting, התמיכה במסגרות שהוגדרו מראש ובמסגרות שנתמכות על ידי הקהילה ניתנת באמצעות מתאמי מסגרות. למתאמי המסגרות של App Hosting יש שני תפקידים מרכזיים:

  • הם מנתחים את קוד המקור ואת קובצי ההגדרות הספציפיים למסגרת (כמו next.config.js) ומפיקים חבילת פלט שאפשר לעבד באמצעות שאר התשתית של App Hosting.
  • הם מריצים את פקודת ה-build של האפליקציה כדי ליצור נכסים סטטיים וליצור גרסה אופטימלית של האפליקציה לייצור.

מתאמי Framework בונים את אפליקציית Node.js באמצעות npm run build, והם פועלים בצורה הכי טובה עם סקריפטים של build שמוגדרים כברירת מחדל לכל Framework: ‏ next build ל-Next.js ו-ng build ל-Angular. ‏ App Hosting ינסה לבצע build באמצעות פקודות build בהתאמה אישית, אבל לא יכול להבטיח הצלחה. אפשר לבטל את ההגדרה של סקריפטים של 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 מופיעים בטבלאות הבאות.

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

בסופו של דבר, גרסאות של זמן ריצה מגיעות לסוף מחזור החיים של התמיכה שלהן. חשוב לעדכן את סביבות זמן הריצה כדי למנוע שינויים שעלולים לשבור את הקוד:

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