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 อยู่ใน 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 | ใช้งานอยู่ | not before 2025-10-9 |
| 15.1.x | ใช้งานอยู่ | not before 2025-10-9 |
| 15.2.x | ใช้งานอยู่ | - |
กำหนดเวลาการสนับสนุน Angular
| เวอร์ชัน | สถานะ | การเลิกใช้งาน |
|---|---|---|
| 18.2.x | lts | 2026-10-9 |
| 19.0.x | ใช้งานอยู่ | not before 2025-10-9 |
| 19.1.x | ใช้งานอยู่ | not before 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การสนับสนุนรันไทม์ ดูรายละเอียดทางเทคนิคเพิ่มเติมเกี่ยวกับวิธีการทำงานของการอัปเดตอิมเมจพื้นฐานได้ที่เอกสารประกอบ ABIUCloud Run
เครื่องมือจัดการแพ็กเกจ
App Hosting ใช้ Cloud Native Buildpacks เพื่อดำเนินการ ติดตั้งทรัพยากร Dependency และสร้างแอปโดยใช้ npm, yarn หรือ pnpm ระบบไม่รองรับตัวจัดการแพ็กเกจอื่นๆ เช่น JSR
NPM
- NPM เป็นเครื่องมือจัดการแพ็กเกจเริ่มต้น
- ระบบจะตัดการพึ่งพาที่ไม่ใช่เวอร์ชันที่ใช้งานจริงออกหลังจากที่บิลด์สำเร็จ
- คุณระบุส่วนเวอร์ชัน npm ได้โดยใช้ฟิลด์
engines.npmในไฟล์package.json
ไหมพรม
- ระบบจะใช้ Yarn แทนเมื่อคุณรวมไฟล์
yarn.lockไว้ในโปรเจ็กต์ - คุณสามารถระบุเวอร์ชัน Yarn ที่จะใช้ในฟิลด์
engines.yarnหรือpackageManagerของไฟล์package.jsonได้ - App Hosting รองรับโหมด PnP ของ Yarn2
Pnpm
- ระบบจะใช้ Pnpm แทนเมื่อคุณรวมไฟล์
pnpm-lock.yamlไว้ในโปรเจ็กต์ - คุณระบุเวอร์ชันของ pnpm ได้ในฟิลด์
engines.pnpmหรือpackageManagerของไฟล์package.json - ดูตัวอย่างที่ใช้งานได้ที่ sample-node-pnpm Flood It!
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 | ใช้งานอยู่ | not before 2025-10-9 |
| 20.1.x | ใช้งานอยู่ | not before 2025-10-9 |
| 20.2.x | ใช้งานอยู่ | not before 2025-10-9 |
| 20.3.x | ใช้งานอยู่ | not before 2025-10-9 |
| 20.4.x | ใช้งานอยู่ | not before 2025-10-9 |
| 20.5.x | ใช้งานอยู่ | not before 2025-10-9 |
| 20.6.x | ใช้งานอยู่ | not before 2025-10-9 |
| 20.7.x | ใช้งานอยู่ | — |
หากต้องการการสนับสนุนสำหรับพื้นที่ทำงานแบบ Monorepo ประเภทอื่นๆ โปรดแจ้งให้เราทราบที่ Firebase UserVoice