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 | ใช้งานอยู่ | ไม่ก่อนวันที่ 09-10-2025 |
| 15.1.x | ใช้งานอยู่ | ไม่ก่อนวันที่ 09-10-2025 |
| 15.2.x | ใช้งานอยู่ | - |
กำหนดเวลาการสนับสนุน Angular
| เวอร์ชัน | สถานะ | การเลิกใช้งาน |
|---|---|---|
| 18.2.x | lts | 2026-10-9 |
| 19.0.x | ใช้งานอยู่ | ไม่ก่อนวันที่ 09-10-2025 |
| 19.1.x | ใช้งานอยู่ | ไม่ก่อนวันที่ 09-10-2025 |
| 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 เพื่อดำเนินการ ติดตั้งการอ้างอิงและสร้างแอปโดยใช้ 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 | ใช้งานอยู่ | ไม่ก่อนวันที่ 09-10-2025 |
| 20.1.x | ใช้งานอยู่ | ไม่ก่อนวันที่ 09-10-2025 |
| 20.2.x | ใช้งานอยู่ | ไม่ก่อนวันที่ 09-10-2025 |
| 20.3.x | ใช้งานอยู่ | ไม่ก่อนวันที่ 09-10-2025 |
| 20.4.x | ใช้งานอยู่ | ไม่ก่อนวันที่ 09-10-2025 |
| 20.5.x | ใช้งานอยู่ | ไม่ก่อนวันที่ 09-10-2025 |
| 20.6.x | ใช้งานอยู่ | ไม่ก่อนวันที่ 09-10-2025 |
| 20.7.x | ใช้งานอยู่ | — |
หากต้องการการสนับสนุนสำหรับพื้นที่ทำงานแบบ Monorepo ประเภทอื่นๆ โปรดแจ้งให้เราทราบที่ Firebase UserVoice