เฟรมเวิร์กและเครื่องมือสําหรับ App Hosting

Firebase App Hosting ออกแบบมาเพื่อรองรับการพัฒนาเว็บแอปสมัยใหม่ที่เน้นเฟรมเวิร์กโดยเฉพาะ ใช้หน้านี้เป็นข้อมูลอ้างอิงสำหรับเครื่องมือและเฟรมเวิร์กที่ App Hosting รองรับโดยตรง รวมถึงเป็นจุดเริ่มต้นในการเรียนรู้เกี่ยวกับเฟรมเวิร์กและเครื่องมือที่เกี่ยวข้อง

เฟรมเวิร์กเว็บและ App Hosting

App Hosting ให้การสนับสนุนเฟรมเวิร์กเว็บสมัยใหม่ใน 2 ระดับกว้างๆ ได้แก่ การสนับสนุนการสร้างและการติดตั้งใช้งานที่กำหนดค่าไว้ล่วงหน้า และการสนับสนุนระดับชุมชนผ่านการมีส่วนร่วมแบบโอเพนซอร์สที่เป็นไปตามข้อกำหนดของแพ็กเกจเอาต์พุต ในทั้ง 2 กรณี คอมโพเนนต์อะแดปเตอร์เฟรมเวิร์กจะช่วยให้สามารถผสานรวมเฟรมเวิร์กที่เฉพาะเจาะจงกับ 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 รองรับเฟรมเวิร์กของตน ตัวอย่างเช่น เฟรมเวิร์ก Nuxt ยอดนิยมได้รับการสนับสนุนโดยทีม Nitro ซึ่งสร้างอะแดปเตอร์ Firebase เพื่อเปิดใช้การติดตั้งใช้งานแอป Nuxt ใน App Hosting

หากต้องการดูเฟรมเวิร์กอื่นๆ ที่ App Hosting รองรับ คุณสามารถสร้างอะแดปเตอร์เฟรมเวิร์ก หรือติดต่อผู้ดูแลเฟรมเวิร์กเพื่อแปลงเอาต์พุตบิลด์เป็นรูปแบบ App Hosting อะแดปเตอร์ Next.js และ Angular เป็นตัวอย่างอ้างอิงที่ดีสำหรับทุกคนที่สร้างอะแดปเตอร์

ดูข้อมูลเกี่ยวกับเฟรมเวิร์กที่ชุมชนรองรับได้ที่ Firebase โอเพนซอร์ส ปัญหาและคำขอฟีเจอร์สำหรับเฟรมเวิร์กที่ชุมชนรองรับควรส่งไปยังชุมชนโอเพนซอร์สหรือผู้เขียนเฟรมเวิร์ก ในบางกรณี Google อาจให้ความช่วยเหลือได้ แต่ชุมชนคือการสนับสนุนด่านแรกสำหรับอะแดปเตอร์เหล่านี้

อะแดปเตอร์เฟรมเวิร์ก App Hosting รายการ

ใน App Hosting การรองรับทั้งเฟรมเวิร์กที่กำหนดค่าไว้ล่วงหน้าและเฟรมเวิร์กที่ชุมชนรองรับจะให้บริการผ่านอะแดปเตอร์เฟรมเวิร์ก อะแดปเตอร์เฟรมเวิร์ก App Hosting มีบทบาทสำคัญ 2 อย่าง ได้แก่

  • โดยจะแยกวิเคราะห์ซอร์สโค้ดและไฟล์การกำหนดค่าเฉพาะเฟรมเวิร์ก (เช่น 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) สำหรับเวอร์ชันย่อยล่าสุดของรุ่นหลักเป็นเวลา 1 ปีนับจากระยะเวลาให้การสนับสนุนที่ใช้งานอยู่ โดยคุณต้องอัปเดตเป็นแพตช์เวอร์ชันล่าสุดภายในเวอร์ชันย่อยนั้นอย่างสม่ำเสมอ ดูรายละเอียดสำหรับ 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 ใช้งานอยู่ not before 2026-10-9

กำหนดการสนับสนุน 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 ดูรายละเอียดทางเทคนิคเพิ่มเติมเกี่ยวกับวิธีการทำงานของการอัปเดตอิมเมจพื้นฐานได้ที่เอกสารประกอบ ABIU ของ Cloud Run

เครื่องมือจัดการแพ็กเกจ

App Hosting ใช้ Cloud Native Buildpacks เพื่อดำเนินการติดตั้งทรัพยากร Dependency และสร้างแอปโดยใช้ npm, yarn หรือ pnpm ระบบไม่รองรับเครื่องมือจัดการแพ็กเกจอื่นๆ เช่น JSR

NPM

  • NPM เป็นเครื่องมือจัดการแพ็กเกจเริ่มต้น
  • ระบบจะตัดทรัพยากร Dependency ที่ไม่ใช่เวอร์ชันที่ใช้งานจริงออกหลังจากสร้างสำเร็จ
  • คุณระบุส่วนเวอร์ชัน 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

Monorepo สำหรับ App Hosting

App Hosting รองรับแอป Monorepo ของ Nx และ Turborepo ดูคำแนะนำโดยละเอียดได้ที่ใช้ Monorepo กับ App Hosting

ระบบรองรับ Nx เวอร์ชันต่อไปนี้

เวอร์ชัน สถานะ การเลิกใช้งาน
20.8.x lts not before 2027-10-9

หากต้องการการสนับสนุนสำหรับพื้นที่ทำงาน Monorepo ประเภทอื่นๆ โปรดแจ้งให้เราทราบที่ Firebase UserVoice