Firebase App Hosting ออกแบบมาโดยเฉพาะเพื่อรองรับการพัฒนาเว็บแอปสมัยใหม่ที่เน้นเฟรมเวิร์กเป็นหลัก ใช้หน้านี้เป็นข้อมูลอ้างอิงสำหรับเครื่องมือและ เฟรมเวิร์กที่ App Hosting รองรับโดยตรง รวมถึงเป็นจุดเริ่มต้น ในการเรียนรู้เกี่ยวกับเฟรมเวิร์กและเครื่องมือที่เกี่ยวข้อง
เฟรมเวิร์กเว็บและ App Hosting
App Hosting ให้การสนับสนุนเฟรมเวิร์กเว็บสมัยใหม่ใน 2 ระดับกว้างๆ ได้แก่ การสนับสนุนการสร้างและติดตั้งใช้งานที่กำหนดค่าไว้ล่วงหน้า และการสนับสนุนระดับชุมชนผ่าน การมีส่วนร่วมในโอเพนซอร์สที่เป็นไปตามข้อกำหนดของ App Bundle เอาต์พุต ในทั้ง 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 Bundle เอาต์พุตของเรา ผู้เขียนเฟรมเวิร์กสามารถใช้ประโยชน์จากข้อกำหนดของ App Bundle เอาต์พุตเพื่อ ให้แน่ใจว่า App HostingApp Hosting จะรองรับเฟรมเวิร์กของตน ตัวอย่างเช่น ทีม Nitro สนับสนุนเฟรมเวิร์ก Nuxt ยอดนิยม ซึ่งได้สร้าง อะแดปเตอร์ Firebase เพื่อให้สามารถติดตั้งใช้งานแอป Nuxt ใน App Hosting ได้
หากต้องการให้เฟรมเวิร์กเพิ่มเติมรองรับโดย App Hosting คุณ สามารถสร้างอะแดปเตอร์เฟรมเวิร์ก หรือติดต่อผู้ดูแลเฟรมเวิร์กเพื่อ แปลงเอาต์พุตบิลด์เป็นรูปแบบ App Hosting อะแดปเตอร์ Next.js และ Angular เป็นตัวอย่างอ้างอิงที่ดีสำหรับทุกคนที่สร้างอะแดปเตอร์
ดูข้อมูลเกี่ยวกับเฟรมเวิร์กที่ชุมชนสนับสนุนได้ใน Firebase Open Source ปัญหาและคำขอฟีเจอร์สำหรับเฟรมเวิร์กที่ชุมชนสนับสนุนควรส่งไปยังชุมชนโอเพนซอร์สหรือผู้เขียนเฟรมเวิร์ก ในบางกรณี Google อาจให้ความช่วยเหลือได้ แต่ชุมชนจะเป็นผู้ให้การสนับสนุนอะแดปเตอร์เหล่านี้เป็นอันดับแรก
อะแดปเตอร์เฟรมเวิร์กของ App Hosting
ใน App Hosting การสนับสนุนทั้งเฟรมเวิร์กที่กำหนดค่าไว้ล่วงหน้าและเฟรมเวิร์กที่ชุมชนสนับสนุน จะดำเนินการผ่าน อะแดปเตอร์เฟรมเวิร์ก อะแดปเตอร์เฟรมเวิร์กApp Hosting มีบทบาทสำคัญ 2 อย่าง ได้แก่
- วิเคราะห์ซอร์สโค้ดและไฟล์กำหนดค่าเฉพาะเฟรมเวิร์ก (เช่น
next.config.js) และสร้าง App Bundle เอาต์พุตที่ โครงสร้างพื้นฐานอื่นๆ ของ 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รองรับ และช่วงของเฟรมเวิร์กเว็บที่คุณเลือก สำหรับการสนับสนุนที่กำหนดค่าไว้ล่วงหน้าสำหรับ Angular และ Next.js หมายความว่าระบบรองรับ Node.js เวอร์ชันต่อไปนี้
- Next.js 13.5.x ขึ้นไป
- Angular 18.2.x ขึ้นไป
- Node.js 20 ขึ้นไป
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 | ใช้งานอยู่ | ไม่ก่อนวันที่ 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's - การจับคู่ 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 เพื่อดำเนินการติดตั้งการขึ้นต่อกันและสร้างแอปโดยใช้ npm, yarn หรือ pnpm ไม่รองรับเครื่องมือจัดการแพ็กเกจอื่นๆ เช่น JSR
NPM
- NPM เป็นเครื่องมือจัดการแพ็กเกจเริ่มต้น
- ระบบจะตัดทรัพยากร Dependency ที่ไม่ใช่ Production ออกหลังจากบิลด์สำเร็จ
- คุณระบุส่วนเวอร์ชัน npm ได้โดยใช้ฟิลด์
engines.npmในไฟล์package.json
Yarn
- ระบบจะใช้ 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
Monorepo สำหรับ App Hosting
App Hosting รองรับแอปที่ใช้ Nx ดูคำแนะนำโดยละเอียดได้ที่ใช้ Monorepo กับ 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 | ใช้งานอยู่ | — |
หากต้องการรับการสนับสนุนสำหรับพื้นที่ทำงาน Monorepo ประเภทอื่นๆ โปรดแจ้งให้เราทราบที่ Firebase UserVoice