الأطر والأدوات لاستضافة التطبيقات

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 Console. عند استخدام الإعداد التلقائي nodejs بدون رقم إصدار، يتم إيقاف ABIU تلقائيًا.

إدارة إصدارات وقت التشغيل

يمكنك الاطّلاع على إصدار وقت تشغيل الواجهة الخلفية وتغييره، بالإضافة إلى إعداد ABIU المفضّل، في أي وقت من خلال علامة التبويب الإعدادات في لوحة بيانات App Hosting. يُرجى العِلم أنّ تغيير إصدار وقت التشغيل قد يؤدي إلى تعطُّل تطبيقك إذا كان الإصدار الجديد غير متوافق مع الرمز البرمجي.

يصل عمر إصدارات وقت التشغيل في النهاية إلى نهاية دورة الدعم. من المهم الحفاظ على تحديث أوقات التشغيل لتجنُّب حدوث تغييرات تؤدي إلى تعطُّل التطبيق:

  • أوقات التشغيل التي تم إيقافها نهائيًا: إذا تم إيقاف وقت التشغيل الذي اخترته نهائيًا، سيستمر تطبيقك في العمل بشكل عام. ستتلقّى تحذيرًا في وحدة التحكّم، وعليك الانتقال إلى إصدار أحدث في أقرب وقت ممكن. لمزيد من المعلومات، يُرجى الاطّلاع على مستندات Cloud Run حول دورة حياة وقت التشغيل .
  • أوقات التشغيل التي تم إيقافها: لا يتم توفير الدعم لأوقات التشغيل التي تم إيقافها نهائيًا. لن يُسمح لك بإنشاء عمليات إنشاء أو واجهات خلفية جديدة باستخدام إصدار تم إيقافه نهائيًا، وستظهر لك رسالة خطأ في الإنشاء إذا حاولت إجراء ذلك. قد تتوقف عمليات النشر الحالية التي يتم تشغيلها على إصدارات تم إيقافها نهائيًا، وقد تتوقف عن العمل، ويحتفظ Cloud Run بالحق في حذفها.

للحصول على قائمة كاملة بإصدارات Node المتوافقة والتي تم إيقافها نهائيًا والتي تم إيقافها، يُرجى الرجوع إلى Cloud Run مستندات دعم وقت التشغيل. لمزيد من التفاصيل الفنية حول طريقة عمل تحديثات الصور الأساسية، يُرجى الاطّلاع على مستندات Cloud Run ABIU.

أدوات إدارة الحِزم

يستخدم 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.