เฟรมเวิร์กและเครื่องมือสําหรับ App Hosting

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