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

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

‫Web frameworks ו-App Hosting

‫App Hosting מספקת שני רמות תמיכה רחבות למסגרות אינטרנט מודרניות: תמיכה מוגדרת מראש בבנייה ובפריסה, ותמיכה ברמת הקהילה באמצעות תרומות קוד פתוח בהתאם למפרט של חבילת הפלט. בשני המקרים, רכיב framework adapter מאפשר שילוב של framework ספציפי עם App Hosting.

‫Frameworks עם תמיכה מוגדרת מראש בבנייה ובפריסה

עם תמיכה מוגדרת מראש בבנייה ובפריסה, Firebase מזהה את המסגרת שבה אתם משתמשים על ידי בדיקת הקובץ package-lock.json או קובץ נעילה אחר, ומבצע אופטימיזציה של תהליכי הבנייה והפריסה של האפליקציה. Google מחויבת לשמור על תמיכה במסגרות האלה, וצוות התמיכה של Firebase יכול לקבל דיווחים על בעיות ובקשות לתכונות.

רמת התמיכה הזו ניתנת עבור:

  • Next.js
  • Angular

פרטים על גרסאות ספציפיות ורמות תמיכה זמינים בלוחות הזמנים של התמיכה.

אם תנסו לפרוס אפליקציית Node.js שחסר לה קובץ נעילה, App Hostingלא תהיה אפשרות לבנות ולהריץ את האפליקציה. כדי ליצור את package-lock.json, צריך להריץ את הפקודה npm install בתיקיית השורש.

מסגרות נתמכות על ידי הקהילה

בנוסף ל-Next.js ול-Angular, ‏ App Hosting תומך גם בכל מסגרת אינטרנט שיכולה לספק פלט בנייה שתואם למפרט חבילת הפלט שלנו. יוצרי מסגרות יכולים להשתמש במפרט של חבילת הפלט כדי לוודא שהמסגרת שלהם נתמכת על ידי 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 זמין ב-apphosting-adapters.

סביבות זמן ריצה ל-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 מגרסה 22 ואילך

‫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 lts 2027-10-9
‫15.1.x lts 2027-10-9
‫15.2.x פעיל not before 2026-10-9

לוח הזמנים לתמיכה ב-Angular

גרסה סטטוס הפסקת תמיכה
‫‎18.2.x lts 2026-10-9
‫19.0.x lts 2027-10-9
‫19.1.x lts 2027-10-9
‫19.2.x פעיל -

עדכונים אוטומטיים של תמונות בסיסיות (ABIU)

התכונה 'עדכונים אוטומטיים של תמונת הבסיס' (ABIU) מאפשרת להחיל באופן אוטומטי תיקוני אבטחה על סביבת זמן הריצה הבסיסית, בלי שתצטרכו להפעיל השקה חדשה של האפליקציה.

‫App Hosting כברירת מחדל, ABIU מופעלת עבור קצה עורפי חדש, עם הדרישות הספציפיות הבאות:

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

מאגרי קוד מסוג Monorepo ל-App Hosting

‫App Hosting תומך באפליקציות Nx ובאפליקציות Turborepo monorepo. הנחיות מפורטות זמינות במאמר בנושא שימוש ב-monorepos עם App Hosting.

הגרסאות הבאות של Nx נתמכות:

גרסה סטטוס הפסקת תמיכה
‫20.8.x lts לא לפני 2027-10-9

אם אתם צריכים תמיכה בסוגים אחרים של סביבות עבודה של monorepo, אתם יכולים להודיע לנו על כך ב-Firebase UserVoice.