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 Hosting จะรองรับเฟรมเวิร์กของตน App 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 | ใช้งานอยู่ | - |
เครื่องมือจัดการแพ็กเกจ
App Hosting ใช้ Cloud Native Buildpacks เพื่อดำเนินการติดตั้งการขึ้นต่อกันและสร้างแอปโดยใช้ 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 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