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 استفاده کنند. برای مثال، تیم Nitro از چارچوب محبوب Nuxt پشتیبانی میکند. این تیم آداپتور Firebase را برای فعال کردن استقرار برنامه Nuxt در App Hosting ساخته است.
اگر میخواهید چارچوبهای بیشتری را که App Hosting پشتیبانی میکند ببینید، میتوانید یک سازگارکننده چارچوب ایجاد کنید یا با نگهدارندگان چارچوب تماس بگیرید تا بروندادهای ساخت را به قالب App Hosting تبدیل کنند. برای هر کسی که درحال ایجاد یک آداپتور است، آداپتورهای Next.js و Angular نمونههای مرجع خوبی هستند.
اطلاعات مربوط به چارچوبهای پشتیبانیشده توسط انجمن را میتوانید در متنباز Firebase پیدا کنید. مشکلات و درخواستهای ویژگی برای چارچوبهای پشتیبانیشده توسط انجمن باید به انجمن منبع باز یا نویسندگان چارچوب ارجاع داده شود. در برخیاز موارد، 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 نسخه ۱۳.۵.x و بالاتر
- Angular 18.2.x و بالاتر
- Node.js نسخه ۲۲ و بالاتر
App Hosting بهطور خودکار از نسخههای چارچوب تازه منتشرشده پشتیبانی فعال ارائه نمیدهد. نسخههای جدیدتر از نسخه «فعال» فعلی ما تا زمانی که بهطور رسمی بهعنوان «فعال» برای App Hosting علامتگذاری شوند، در وضعیت «پیشنمایش» درنظر گرفته خواهند شد.
App Hosting از پشتیبانی بلندمدت (LTS) برای جدیدترین نسخه فرعی نسخه اصلی بهمدت یک سال از دوره پشتیبانی فعال آن پشتیبانی میکند، بهشرطی که بهطور مداوم به جدیدترین نسخههای وصله در آن نسخه فرعی بهروزرسانی کنید. برای جزئیات مربوط به Next.js و Angular، به جدولهای زیر مراجعه کنید.
برنامه زمانی پشتیبانی Next.js
| نسخه | وضعیت | منسوخ شدن |
|---|---|---|
| ۱۳.۵.x | lts | 2026-10-9 |
| ۱۴.۲.x | lts | 2026-10-9 |
| ۱۵.۰.x | lts | 2027-10-9 |
| ۱۵.۱.x | lts | 2027-10-9 |
| ۱۵.۲.x | فعال | نه قبلاز ۲۰۲۶-۱۰-۹ |
برنامه زمانی پشتیبانی از Angular
| نسخه | وضعیت | منسوخ شدن |
|---|---|---|
| ۱۸.۲.x | lts | 2026-10-9 |
| ۱۹.۰.x | lts | 2027-10-9 |
| ۱۹.۱.x | lts | 2027-10-9 |
| ۱۹.۲.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 مدیر بسته پیشفرض است.
- وابستگیهای غیرتولیدی پساز موفقیتآمیز بودن ساختار هرس میشوند.
- بااستفاده از فیلد
engines.npmدر فایلpackage.jsonمیتوانید بخش نسخه npm را مشخص کنید.
کاموا
- وقتی فایل
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 پشتیبانی میشوند:
| نسخه | وضعیت | منسوخ شدن |
|---|---|---|
| ۲۰.۸.x | lts | نه قبلاز ۲۰۲۷-۱۰-۹ |
اگر برای انواع دیگر فضاهای کاری monorepo به پشتیبانی نیاز دارید، در Firebase UserVoice به ما اطلاع دهید.