Firebase App Hosting מיועד במיוחד לתמיכה בפיתוח של אפליקציות אינטרנט מודרניות שמתמקדות במסגרת. הדף הזה משמש כחומר עזר לכלים ולמסגרות שנתמכים ישירות ב-App Hosting, וגם כנקודת התחלה ללמידה על מסגרות וכלים קשורים.
מסגרות אינטרנט ו-App Hosting
App Hosting מספק שתי רמות תמיכה רחבות למסגרות אינטרנט מודרניות: תמיכה מוגדרת מראש בבנייה ובפריסה, ותמיכה ברמת הקהילה באמצעות תרומות בקוד פתוח שתואמות למפרט של חבילת הפלט. בשני המקרים, רכיב מתאם מסגרת מאפשר לשלב מסגרת ספציפית עם App Hosting.
סביבות פיתוח עם תמיכה מוגדרת מראש בבנייה ובפריסה
בעזרת תמיכה מוגדרת מראש בבנייה ובפריסה, Firebase מזהה את סביבת הפיתוח שבה אתם משתמשים על ידי בדיקת הקובץ package-lock.json או קובץ נעילה אחר, ומבצעת אופטימיזציה של תהליכי הבנייה והפריסה של האפליקציה. Google מחויבת להמשיך לתמוך בסביבות הפיתוח האלה, וצוות התמיכה של Firebase יכול לקבל דיווחים על בעיות והגשת בקשות להוספת תכונות.
רמת התמיכה הזו ניתנת למוצרים הבאים:
- Next.js
- Angular
בלוחות הזמנים של התמיכה מפורטים הפרטים על גרסאות ספציפיות ורמות תמיכה.
אם תנסו לפרוס אפליקציית Node.js שחסר בה קובץ נעילה, App Hosting לא יצליח ליצור ולהריץ את האפליקציה. כדי ליצור את package-lock.json, צריך להריץ את npm install בתיקיית השורש.
סביבות פיתוח שנתמכות על ידי הקהילה
בנוסף ל-Next.js ול-Angular, App Hosting תומך גם בכל מסגרת אינטרנט שיכולה לספק פלט build שתואם למפרט חבילת הפלט שלנו. מפתחי Framework יכולים להשתמש במפרט של חבילת הפלט כדי לוודא ש-App Hosting תומך ב-Framework שלהם. לדוגמה, מסגרת Nuxt הפופולרית נתמכת על ידי צוות Nitro, שבנה מתאם Firebase כדי לאפשר פריסת אפליקציות Nuxt ב-App Hosting.
אם אתם רוצים לראות מסגרות נוספות שנתמכות על ידי App Hosting, אתם יכולים ליצור מתאם למסגרת או לפנות למנהלי המסגרת כדי להמיר את פלטי ה-build לפורמט של App Hosting. המתאמים של Next.js ו-Angular הם דוגמאות טובות לכל מי שיוצר מתאם.
מידע על מסגרות שנתמכות על ידי הקהילה זמין בקוד הפתוח של Firebase. בעיות והגשת בקשות להוספת תכונות במסגרות שנתמכות על ידי הקהילה צריך להפנות לקהילת הקוד הפתוח או ליוצרי המסגרת. במקרים מסוימים Google יכולה לעזור, אבל הקהילה היא קו התמיכה הראשון למתאמים האלה.
App Hosting מתאמי Framework
ב-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 זמין ב-apphosting-adapters.
זמני ריצה של App Hosting
אחרי שהאפליקציה נבנית ומופצת על ידי App Hosting, אפליקציית Node.js שלך פועלת בגרסה של Cloud Run. לכן, גרסת סביבת זמן הריצה של האפליקציה צריכה להיות בטווח הנתמך של Cloud Run ובטווח של מסגרת האינטרנט שבחרתם. התמיכה המוגדרת מראש ב-Angular וב-Next.js כוללת את הגרסאות הבאות של Node.js ושל ה-framework:
- Next.js מגרסה 13.5.x ואילך
- Angular 18.2.x ואילך
- Node.js מגרסה 22 ואילך
App Hosting לא מספקת באופן אוטומטי תמיכה פעילה בגרסאות חדשות של Framework. גרסאות חדשות יותר מהגרסה שמוגדרת כרגע כ"פעילה" ייחשבו כגרסאות "טרום-השקה" עד שהן יסומנו באופן רשמי כ"פעילות" ב-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 | lts | 2027-10-9 |
| 15.1.x | lts | 2027-10-9 |
| 15.2.x | פעיל | לא לפני 9.10.2026 |
לוח הזמנים של התמיכה ב-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)
עדכונים אוטומטיים של קובצי Base Image (ABIU) היא תכונה שבאמצעותה אפשר להחיל באופן אוטומטי תיקוני אבטחה על סביבת זמן הריצה הבסיסית, בלי שתצטרכו להפעיל השקה של אפליקציה חדשה.
כברירת מחדל, App Hosting מפעיל את ABIU בקצוות עורפיים חדשים, עם הדרישות הספציפיות הבאות:
- סביבות זמן ריצה עם גרסאות: כדי להשתמש ב-ABIU, צריך לציין סביבת זמן ריצה עם גרסה (כמו
nodejs22אוnodejs24). App Hosting תומכת בגרסאות Node.js עם מספרים זוגיים, בדומה לתמיכה של Cloud Run. - התאמה ל-package.json: גרסת Node שבוחרים ל-App Hosting צריכה להתאים לגרסה שצוינה בשדה
enginesשל הקובץpackage.json. אם אין התאמה, תופיע שגיאה בזמן ה-build מ-Cloud Build. בכל פעם שמשנים את השדהengines, חשוב לעדכן את סביבת זמן הריצה של הקצה העורפי לפני הפריסה.
השבתת ABIU
אם אתם רוצים לבטל את ההצטרפות ל-ABIU, אתם יכולים להשבית את התכונה במהלך ההצטרפות או לבחור באפשרות Not Specified בסביבת זמן הריצה במסוף Firebase. כשמשתמשים בברירת המחדל של nodejs ללא גרסה, ABIU מושבת באופן אוטומטי.
ניהול גרסאות של סביבת זמן ריצה
אתם יכולים לראות ולשנות את גרסת זמן הריצה של הקצה העורפי ואת ההעדפה של ABIU בכל שלב בכרטיסייה הגדרות במרכז הבקרה של App Hosting. עם זאת, חשוב לזכור ששינוי גרסת סביבת זמן הריצה עלול לשבש את האפליקציה אם הגרסה החדשה לא תואמת לקוד.
בסופו של דבר, גרסאות של סביבות זמן ריצה מגיעות לסוף מחזור החיים של התמיכה. חשוב לעדכן את סביבות זמן הריצה כדי למנוע שינויי תוכנה שעלולים לגרום לכשל:
- סביבות זמן ריצה שהוצאו משימוש: אם סביבת זמן הריצה שבחרתם הוצאה משימוש, האפליקציה בדרך כלל תמשיך לפעול. תופיע אזהרה במסוף, וצריך לעבור לגרסה חדשה יותר בהקדם האפשרי. מידע נוסף זמין במסמכי התיעוד של Cloud Run בנושא מחזור החיים של זמן הריצה.
- סביבות זמן ריצה שהוצאו משימוש: סביבות זמן ריצה שהוצאו משימוש לא נתמכות בכלל. לא תוכלו ליצור גרסאות build או קצוות עורפיים חדשים באמצעות גרסה שהוצאה משימוש, ואם תנסו לעשות זאת תופיע שגיאת build. יכול להיות שפריסות קיימות שפועלות בגרסאות שהוצאו משימוש יפסיקו לפעול, ול-Cloud Run שמורה הזכות למחוק אותן.
לרשימה המלאה של גרסאות Node שנתמכות, שהוצאו משימוש ושהושבתו, עיינו במסמכי התיעוד של תמיכה בסביבת זמן ריצה של Cloud Run. לפרטים טכניים נוספים על אופן הפעולה של עדכוני קובצי אימג' בסיסיים, עיינו במסמכי התיעוד של 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. - תוכלו לראות דוגמה שעובדת באפליקציה example-node-pnpm.
מאגרי מונוריפו של App Hosting
App Hosting תומך באפליקציות מונוריפו של Nx ו-Turborepo. הנחיות מפורטות זמינות במאמר שימוש במונוריפו עם App Hosting.
אלה גרסאות Nx שנתמכות:
| גרסה | סטטוס | הוצאה משימוש |
|---|---|---|
| 20.8.x | lts | לא לפני 9.10.2027 |
אם אתם צריכים תמיכה בסוגים אחרים של סביבות עבודה במונוריפו, אתם יכולים לספר לנו על כך ב-Firebase UserVoice.