چارچوب‌ها و ابزارهای App Hosting

Firebase App Hosting به‌طور خاص برای پشتیبانی از توسعه برنامه وب مدرن چارچوب‌محور طراحی شده است. از این صفحه به‌عنوان مرجعی برای ابزارها و چارچوب‌هایی که App Hosting مستقیماً پشتیبانی می‌کند و همچنین به‌عنوان نقطه شروعی برای آشنایی با چارچوب‌ها و ابزارهای مرتبط استفاده کنید.

چارچوب‌های وب و App Hosting

App Hosting دو سطح گسترده پشتیبانی برای چارچوب‌های وب مدرن ارائه می‌دهد: پشتیبانی از ساخت و استقرار ازپیش پیکربندی‌شده، و پشتیبانی در سطح انجمن ازطریق مشارکت‌های متن‌باز مطابق با مشخصات بسته خروجی. در هر دو مورد، مؤلفه آداپتور چارچوب ادغام چارچوب خاصی را با App Hosting ممکن می‌کند.

چارچوب‌هایی با پشتیبانی از ساخت و استقرار ازپیش پیکربندی‌شده

با پشتیبانی از ساخت و استقرار ازپیش پیکربندی‌شده، Firebase با بررسی فایل package-lock.json یا فایل قفل دیگر، چارچوبی را که استفاده می‌کنید شناسایی می‌کند و فرایندهای ساخت و استقرار را برای برنامه‌تان بهینه‌سازی می‌کند. Google متعهد به حفظ پشتیبانی از این چارچوب‌ها است و تیم پشتیبانی Firebase می‌تواند گزارش‌های مشکل و درخواست‌های ویژگی را بپذیرد.

این سطح پشتیبانی برای موارد زیر ارائه می‌شود:

  • Next.js
  • Angular

برای جزئیات مربوط به نسخه‌های خاص و سطوح پشتیبانی، زمان‌بندی‌های پشتیبانی را ببینید.

اگر بخواهید برنامه Node.js را که فاقد فایل قفل است مستقر کنید، App Hosting نمی‌تواند برنامه شما را بسازد و اجرا کند. می‌توانید با اجرای npm install در دایرکتوری ریشه، package-lock.json را ایجاد کنید.

چارچوب‌های پشتیبانی‌شده توسط انجمن

علاوه‌بر Next.js و Angular،‏ App Hosting از هر چارچوب وبی که بتواند برونداد ساخت مطابق با مشخصات بسته برونداد ما ارائه دهد نیز پشتیبانی می‌کند. نویسندگان چارچوب می‌توانند از مشخصات بسته خروجی استفاده کنند تا مطمئن شوند چارچوبشان توسط App Hosting پشتیبانی می‌شود. برای مثال، چارچوب محبوب Nuxt توسط تیم Nitro پشتیبانی می‌شود که یک آداپتور 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 در 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، به جدول‌های زیر مراجعه کنید.

برنامه زمانی پشتیبانی Next.js

نسخه وضعیت منسوخ شدن
13.5.x lts 2026-10-9
14.2.x lts 2026-10-9
‫۱۵٫۰.x lts 2027-10-9
15.1.x lts 2027-10-9
15.2.x فعال نه قبل‌از ۲۰۲۶/۱۰/۹

برنامه زمانی پشتیبانی 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 را تغییر می‌دهید، حتماً زمان اجرای باطن را قبل‌از استقرار به‌روز کنید.

درحال غیرفعال کردن ABIU

اگر می‌خواهید از ABIU انصراف دهید، می‌توانید آن را درطول آماده‌سازی یا با انتخاب «مشخص‌نشده» برای زمان اجرا در کنسول Firebase غیرفعال کنید. وقتی از پیش‌فرض 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.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 را ببینید.

تک‌مخزن‌های App Hosting

App Hosting از برنامه‌های تک‌مخزن Nx و Turborepo پشتیبانی می‌کند. برای راهنمایی دقیق، به استفاده از تک‌مخزن با App Hosting مراجعه کنید.

نسخه‌های Nx زیر پشتیبانی می‌شود:

نسخه وضعیت منسوخ شدن
‫20.8.x lts نه قبل‌از ۲۰۲۷/۱۰/۹

اگر برای انواع دیگر فضاهای کاری تک‌مخزن به پشتیبانی نیاز دارید، ازطریق Firebase UserVoice به ما اطلاع دهید.