Firebase App Hosting ออกแบบมาโดยเฉพาะเพื่อรองรับการพัฒนาเว็บแอปสมัยใหม่ที่เน้นเฟรมเวิร์กเป็นหลัก ใช้หน้านี้เป็นข้อมูลอ้างอิงสำหรับเครื่องมือและ เฟรมเวิร์กที่ App Hosting รองรับโดยตรง รวมถึงเป็นจุดเริ่มต้น ในการเรียนรู้เกี่ยวกับเฟรมเวิร์กและเครื่องมือที่เกี่ยวข้อง
เฟรมเวิร์กเว็บและ App Hosting
App Hosting มีการรองรับเฟรมเวิร์กเว็บสมัยใหม่ 2 ระดับ ได้แก่ การรองรับการสร้างและติดตั้งใช้งานที่กำหนดค่าไว้ล่วงหน้า และการรองรับระดับชุมชนผ่าน การมีส่วนร่วมในโอเพนซอร์สที่เป็นไปตามข้อกำหนดของ App Bundle เอาต์พุต ทั้ง 2 กรณีนี้ คอมโพเนนต์ Framework Adapter จะช่วยให้ผสานรวมเฟรมเวิร์กเฉพาะ กับ 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 Hosting จะรองรับเฟรมเวิร์กของตน App Hosting ตัวอย่างเช่น ทีม Nitro รองรับเฟรมเวิร์ก Nuxt ยอดนิยม ซึ่งได้สร้าง อะแดปเตอร์ Firebase เพื่อให้ติดตั้งใช้งานแอป Nuxt ใน App Hostingได้
หากต้องการให้เฟรมเวิร์กเพิ่มเติมรองรับโดย App Hosting คุณ สามารถสร้างอะแดปเตอร์เฟรมเวิร์ก หรือติดต่อผู้ดูแลเฟรมเวิร์กเพื่อ แปลงเอาต์พุตบิลด์เป็นรูปแบบ App Hosting อะแดปเตอร์ Next.js และ Angular เป็นตัวอย่างอ้างอิงที่ดีสำหรับผู้ที่สร้างอะแดปเตอร์
ดูข้อมูลเกี่ยวกับเฟรมเวิร์กที่ชุมชนรองรับได้ที่ Firebase Open Source ควรส่งปัญหาและคำขอฟีเจอร์สำหรับเฟรมเวิร์กที่ชุมชนรองรับไปยังชุมชนโอเพนซอร์สหรือผู้เขียนเฟรมเวิร์ก ในบางกรณี Google อาจให้ความช่วยเหลือได้ แต่ชุมชนจะเป็นผู้ให้การสนับสนุนอะแดปเตอร์เหล่านี้เป็นอันดับแรก
อะแดปเตอร์เฟรมเวิร์กของ App Hosting
ใน App Hosting การรองรับทั้งเฟรมเวิร์กที่กำหนดค่าไว้ล่วงหน้าและเฟรมเวิร์กที่ชุมชนรองรับ จะดำเนินการผ่าน Framework Adapter อะแดปเตอร์เฟรมเวิร์กApp Hosting มีบทบาทสำคัญ 2 อย่าง ได้แก่
- วิเคราะห์ซอร์สโค้ดและไฟล์กำหนดค่าเฉพาะเฟรมเวิร์ก (เช่น
next.config.js) และสร้าง App Bundle เอาต์พุตที่ โครงสร้างพื้นฐานอื่นๆ ของ App Hosting สามารถประมวลผลได้ - เรียกใช้คำสั่งบิลด์ของแอปเพื่อสร้างชิ้นงานแบบคงที่และสร้างแอปเวอร์ชันที่ปรับให้เหมาะสมสำหรับการใช้งานจริง
Framework Adapter จะสร้างแอป 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 Revision ดังนั้น เวอร์ชันรันไทม์ของแอป ควรอยู่ในช่วงที่ 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 - การจับคู่ 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