Firebase App Hosting تم تصميمه خصيصًا لدعم تطوير تطبيقات الويب الحديثة التي تركز على إطار العمل. استخدِم هذه الصفحة كمرجع للأدوات و أُطر العمل التي يتيحها 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 أيضًا استخدام أي إطار عمل ويب يمكنه توفير ناتج إنشاء يتطابق مع مواصفات حزمة الإخراج . يمكن لمؤلّفي أُطر العمل الاستفادة من مواصفات حزمة الإخراج لـ ضمان توافق إطار عملهم مع App Hosting. على سبيل المثال، يتيح فريق Nitro استخدام إطار عمل Nuxt الشائع ، وقد أنشأ هذا الفريق محوّلاً لمنصة Firebase لتمكين نشر تطبيقات Nuxt على App Hosting.
إذا أردت أن يتيح App Hosting استخدام أُطر عمل إضافية، يمكنك إنشاء محوّل إطار عمل أو التواصل مع المسؤولين عن إطار العمل لتحويل نواتج الإنشاء إلى تنسيق App Hosting. يُعدّ محوّلا Next.js وAngular مثالَين مرجعيَين جيدَين لأي مستخدم ينشئ محوّلاً.
يمكنك العثور على معلومات حول أُطر العمل التي يوفّر لها المنتدى الدعم على Firebase Open Source. يجب توجيه المشاكل وطلبات الميزات لأُطر العمل التي يوفّر لها المنتدى الدعم إلى المنتدى المفتوح المصدر أو إلى مؤلّفي إطار العمل. في بعض الحالات، قد تتمكّن Google من المساعدة، ولكن المنتدى هو خط الدعم الأول لهذه المحوّلات.
محوّلات أُطر عمل App Hosting
في App Hosting، يتم توفير الدعم لأُطر العمل المُعدّة مسبقًا والتي يوفّر لها المنتدى الدعم من خلال محوّلات أُطر العمل. لمحوّلات أُطر عمل App Hosting دورَان رئيسيان:
- تحلّل هذه المحوّلات رمز المصدر وأي ملفات إعداد خاصة بإطار العمل (مثل
next.config.js) وتنشئ حزمة إخراج يمكن لبقية البنية الأساسية لـ App Hosting معالجتها. - تنفّذ هذه المحوّلات أمر إنشاء تطبيقك لإنشاء مواد العرض الثابتة وإنشاء إصدار محسّن من تطبيقك للإنتاج.
تنشئ محوّلات أُطر العمل تطبيق Node.js باستخدام npm run build، وتعمل على أفضل وجه مع النصوص البرمجية التلقائية للإنشاء لكل إطار عمل: next build لـ Next.js وng build لـ Angular. سيحاول App Hosting إجراء عمليات الإنشاء باستخدام أوامر إنشاء مخصّصة
، ولكن لا يمكنه ضمان النجاح بشكل موثوق. يمكنك
إلغاء النصوص البرمجية للإنشاء والتشغيل
في apphosting.yaml.
يتوفّر مصدر محوّلات Next.js وAngular في firebase-framework-tools.
أوقات تشغيل App Hosting
بعد أن ينشئ App Hosting تطبيق Node.js ويطرحه، يتم تشغيله في مراجعة Cloud Run. وبناءً على ذلك، يجب أن يكون إصدار وقت تشغيل تطبيقك ضمن النطاق المتوافق مع كل من Cloud Run's supported range وإطار عمل الويب الذي اخترته. بالنسبة إلى الدعم المُعدّ مسبقًا لـ 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 | نشطة | ليس قبل 2025-10-9 |
| 15.1.x | نشطة | ليس قبل 2025-10-9 |
| 15.2.x | نشطة | - |
جدول دعم Angular
| الإصدار | الحالة | الإيقاف النهائي |
|---|---|---|
| 18.2.x | lts | 2026-10-9 |
| 19.0.x | نشطة | ليس قبل 2025-10-9 |
| 19.1.x | نشطة | ليس قبل 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، احرص على تعديل وقت تشغيل الواجهة الخلفية قبل النشر.
إيقاف ميزة ABIU
إذا أردت إيقاف ميزة ABIU، يمكنك إيقافها أثناء عملية الإعداد أو من خلال
اختيار "غير محدّد" لوقت التشغيل في Firebase وحدة التحكّم. عند استخدام الإعداد التلقائي nodejs بدون رقم إصدار، يتم إيقاف ميزة ABIU تلقائيًا.
إدارة إصدارات وقت التشغيل
يمكنك الاطّلاع على إصدار وقت تشغيل الواجهة الخلفية وتغييره، بالإضافة إلى الإعداد المفضّل لميزة ABIU، في أي وقت من خلال علامة التبويب الإعدادات في لوحة بيانات App Hosting. يُرجى العِلم أنّ تغيير إصدار وقت التشغيل قد يؤدي إلى تعطُّل تطبيقك إذا كان الإصدار الجديد غير متوافق مع الرمز البرمجي.
في النهاية، يصل عمر إصدارات وقت التشغيل إلى نهاية دورة الدعم. من المهم الحفاظ على تحديث أوقات التشغيل لتجنُّب حدوث تغييرات تؤدي إلى تعطُّل التطبيق:
- أوقات التشغيل التي تم إيقافها نهائيًا: إذا تم إيقاف وقت التشغيل الذي اخترته نهائيًا، سيستمر تطبيقك في العمل بشكل عام. ستتلقّى تحذيرًا في وحدة التحكّم، وعليك الانتقال إلى إصدار أحدث في أقرب وقت ممكن. لمزيد من المعلومات، يُرجى الاطّلاع على مستندات Cloud Run حول دورة حياة وقت التشغيل .
- أوقات التشغيل التي تم إيقافها: لا يتم توفير الدعم لأوقات التشغيل التي تم إيقافها نهائيًا. لن يُسمح لك بإنشاء عمليات إنشاء أو واجهات خلفية جديدة باستخدام إصدار تم إيقافه نهائيًا، وإذا حاولت إجراء ذلك، سيظهر لك خطأ في الإنشاء. قد تتوقف عمليات النشر الحالية التي يتم تشغيلها على إصدارات تم إيقافها نهائيًا، وقد تتوقف عن العمل، ويحتفظ Cloud Run بالحق في حذفها.
للحصول على قائمة كاملة بإصدارات Node المتوافقة والتي تم إيقافها نهائيًا والتي تم إيقافها، يُرجى الرجوع إلى مستندات Cloud Run حول دعم وقت التشغيل. لمزيد من التفاصيل الفنية حول طريقة عمل تحديثات الصور الأساسية، يُرجى الاطّلاع على مستندات Cloud RunABIU.
أدوات إدارة الحِزم
يستخدم App Hosting Cloud Native Buildpacks لتنفيذ عملية تثبيت التبعيات وإنشاء التطبيق باستخدام npm أو yarn أو pnpm. لا يتم توفير الدعم لأدوات إدارة الحِزم الأخرى، مثل JSR.
NPM
- NPM هي أداة إدارة الحِزم التلقائية.
- يتم حذف التبعيات غير الخاصة بالإنتاج بعد نجاح عملية الإنشاء.
- يمكنك تحديد قسم إصدار npm باستخدام حقل
engines.npmفي ملفpackage.json.
خيط غزل
- يتم استخدام Yarn بدلاً من ذلك عند تضمين ملف
yarn.lockفي مشروعك. - يمكنك تحديد إصدار Yarn الذي تريد استخدامه في حقل
engines.yarnأوpackageManagerفي ملفpackage.json. - App Hosting يتيح وضع Yarn2 PnP.
Pnpm
- يتم استخدام pnpm بدلاً من ذلك عند تضمين ملف
pnpm-lock.yamlفي مشروعك. - يمكنك تحديد إصدار من pnpm في حقل
engines.pnpmأوpackageManagerفي ملفpackage.json. - للاطّلاع على مثال عملي، يُرجى الرجوع إلى sample-node-pnpm. app.
مستودعات متعددة في App Hosting
App Hosting يتيح استخدام التطبيقات المستندة إلى Nx. يُرجى الاطّلاع على مقالة استخدام مستودعات متعددة مع App Hosting للحصول على إرشادات مفصّلة.
يتيح 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 | نشطة | ليس قبل 2025-10-9 |
| 20.1.x | نشطة | ليس قبل 2025-10-9 |
| 20.2.x | نشطة | ليس قبل 2025-10-9 |
| 20.3.x | نشطة | ليس قبل 2025-10-9 |
| 20.4.x | نشطة | ليس قبل 2025-10-9 |
| 20.5.x | نشطة | ليس قبل 2025-10-9 |
| 20.6.x | نشطة | ليس قبل 2025-10-9 |
| 20.7.x | نشطة | — |
إذا كنت بحاجة إلى دعم لأنواع أخرى من مساحات عمل المستودعات المتعددة، يُرجى إعلامنا بذلك على Firebase UserVoice.