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 อยู่ใน apphosting-adapters
รันไทม์สำหรับ 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 22 ขึ้นไป
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 | lts | 2027-10-9 |
| 15.1.x | lts | 2027-10-9 |
| 15.2.x | ใช้งานอยู่ | not before 2026-10-9 |
กำหนดการสนับสนุน Angular
| เวอร์ชัน | สถานะ | การเลิกใช้งาน |
|---|---|---|
| 18.2.x | lts | 2026-10-9 |
| 19.0.x | lts | 2027-10-9 |
| 19.1.x | lts | 2027-10-9 |
| 19.2.x | ใช้งานอยู่ | - |
การอัปเดตอิมเมจพื้นฐานอัตโนมัติ (ABIU)
การอัปเดตอิมเมจพื้นฐานอัตโนมัติ (ABIU) เป็นฟีเจอร์ที่ใช้แพตช์ด้านความปลอดภัยกับสภาพแวดล้อมรันไทม์ที่สำคัญโดยอัตโนมัติ โดยที่คุณไม่ต้องทริกเกอร์การเปิดตัวแอปใหม่
App Hosting จะเปิดใช้ ABIU โดยค่าเริ่มต้นสำหรับแบ็กเอนด์ใหม่ โดยมีข้อกำหนดเฉพาะดังนี้
- รันไทม์ที่มีเวอร์ชัน: หากต้องการใช้ ABIU คุณต้องระบุรันไทม์ที่มีเวอร์ชัน (เช่น
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 เพื่อดำเนินการติดตั้งทรัพยากร Dependency และสร้างแอปโดยใช้ 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
Monorepo สำหรับ App Hosting
App Hosting รองรับแอป Monorepo ของ Nx และ Turborepo ดูคำแนะนำโดยละเอียดได้ที่ใช้ Monorepo กับ App Hosting
ระบบรองรับ Nx เวอร์ชันต่อไปนี้
| เวอร์ชัน | สถานะ | การเลิกใช้งาน |
|---|---|---|
| 20.8.x | lts | not before 2027-10-9 |
หากต้องการการสนับสนุนสำหรับพื้นที่ทำงาน Monorepo ประเภทอื่นๆ โปรดแจ้งให้เราทราบที่ Firebase UserVoice