Firebase App Hosting được thiết kế riêng để hỗ trợ quá trình phát triển ứng dụng web hiện đại, tập trung vào khung. Hãy sử dụng trang này làm tài liệu tham khảo về các công cụ và khung mà App Hosting trực tiếp hỗ trợ, cũng như làm điểm khởi đầu để tìm hiểu về các khung và công cụ liên quan.
Khung web và App Hosting
App Hosting cung cấp hai cấp độ hỗ trợ rộng rãi cho các khung web hiện đại: hỗ trợ xây dựng và triển khai được định cấu hình sẵn, và hỗ trợ ở cấp cộng đồng thông qua các đóng góp nguồn mở tuân thủ thông số kỹ thuật của gói đầu ra. Trong cả hai trường hợp, thành phần bộ chuyển đổi khung cho phép tích hợp một khung cụ thể với App Hosting.
Các khung có hỗ trợ sẵn tính năng xây dựng và triển khai
Với tính năng hỗ trợ xây dựng và triển khai được định cấu hình sẵn, Firebase xác định khung bạn đang sử dụng bằng cách kiểm tra tệp package-lock.json hoặc tệp khoá khác, đồng thời tối ưu hoá quy trình xây dựng và triển khai cho ứng dụng của bạn. Google cam kết duy trì dịch vụ hỗ trợ cho các khung này và nhóm hỗ trợ Firebase có thể chấp nhận báo cáo vấn đề và yêu cầu về tính năng.
Cấp độ hỗ trợ này được cung cấp cho:
- Next.js
- Angular
Hãy xem lịch trình hỗ trợ để biết thông tin chi tiết về các phiên bản và cấp độ hỗ trợ cụ thể.
Nếu bạn cố gắng triển khai một ứng dụng Node.js thiếu tệp khoá, App Hosting sẽ không thể tạo và chạy ứng dụng của bạn. Bạn có thể tạo package-lock.json bằng cách chạy npm install trong thư mục gốc.
Khung do cộng đồng hỗ trợ
Ngoài Next.js và Angular, App Hosting cũng hỗ trợ mọi khung web có thể cung cấp kết quả bản dựng khớp với quy cách gói đầu ra của chúng tôi. Tác giả khung có thể tận dụng thông số kỹ thuật của gói đầu ra để đảm bảo khung của họ được App Hosting hỗ trợ. Ví dụ: khung Nuxt phổ biến được nhóm Nitro hỗ trợ. Nhóm này đã xây dựng một bộ chuyển đổi Firebase để cho phép triển khai ứng dụng Nuxt trên App Hosting.
Nếu muốn xem các khung khác được App Hosting hỗ trợ, bạn có thể tạo một bộ chuyển đổi khung hoặc liên hệ với người duy trì khung để chuyển đổi kết quả bản dựng sang định dạng App Hosting. Bộ chuyển đổi Next.js và Angular là những ví dụ tham khảo phù hợp cho bất kỳ ai tạo bộ chuyển đổi.
Bạn có thể xem thông tin về các khung do cộng đồng hỗ trợ trên Firebase Open Source. Các vấn đề và yêu cầu về tính năng cho khung do cộng đồng hỗ trợ phải được chuyển đến cộng đồng nguồn mở hoặc tác giả khung. Trong một số trường hợp, Google có thể hỗ trợ, nhưng cộng đồng là nơi hỗ trợ đầu tiên cho các bộ chuyển đổi này.
App Hosting bộ chuyển đổi khung
Trong App Hosting, tính năng hỗ trợ cho cả khung được định cấu hình sẵn và khung do cộng đồng hỗ trợ được cung cấp thông qua bộ chuyển đổi khung. Bộ chuyển đổi khung App Hosting có hai vai trò chính:
- Các trình bổ trợ này phân tích cú pháp mã nguồn và mọi tệp cấu hình dành riêng cho khung (chẳng hạn như
next.config.js) rồi tạo một gói đầu ra mà phần còn lại của cơ sở hạ tầng App Hosting có thể xử lý. - Các công cụ này chạy lệnh bản dựng của ứng dụng để tạo thành phần tĩnh và tạo phiên bản tối ưu hoá của ứng dụng cho môi trường phát hành công khai.
Bộ chuyển đổi khung xây dựng ứng dụng Node.js bằng npm run build, hoạt động hiệu quả nhất với các tập lệnh bản dựng mặc định cho từng khung: next build cho Next.js và ng build cho Angular. App Hosting sẽ cố gắng tạo bản dựng bằng các lệnh tạo bản dựng tuỳ chỉnh, nhưng không thể đảm bảo thành công. Bạn có thể ghi đè tập lệnh bản dựng và chạy tập lệnh trong apphosting.yaml.
Nguồn cho bộ chuyển đổi Next.js và Angular có trong apphosting-adapters.
Thời gian chạy cho App Hosting
Sau khi được App Hosting tạo và triển khai, ứng dụng Node.js của bạn sẽ chạy trong một bản sửa đổi Cloud Run. Theo đó, phiên bản thời gian chạy cho ứng dụng của bạn phải nằm trong cả phạm vi được hỗ trợ của Cloud Run và phạm vi của khung web mà bạn chọn. Đối với dịch vụ hỗ trợ được định cấu hình sẵn cho Angular và Next.js, điều này có nghĩa là các phiên bản khung và Node.js sau đây được hỗ trợ:
- Next.js 13.5.x trở lên
- Angular 18.2.x trở lên
- Node.js 22 trở lên
App Hosting không tự động hỗ trợ các phiên bản khung mới phát hành. Các phiên bản mới hơn phiên bản hiện được chỉ định là "đang hoạt động" sẽ được coi là ở trạng thái "bản xem trước" cho đến khi được chính thức đánh dấu là "đang hoạt động" cho App Hosting.
App Hosting hỗ trợ dài hạn (LTS) cho phiên bản nhỏ mới nhất của một bản phát hành chính trong một năm kể từ giai đoạn hỗ trợ đang hoạt động, miễn là bạn luôn cập nhật lên các bản phát hành bản vá mới nhất trong phiên bản nhỏ đó. Hãy tham khảo các bảng sau để biết thông tin chi tiết về Next.js và Angular.
Lịch hỗ trợ Next.js
| Phiên bản | Trạng thái | Ngừng sử dụng |
|---|---|---|
| 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 | hoạt động | không sớm hơn ngày 9 tháng 10 năm 2026 |
Lịch hỗ trợ Angular
| Phiên bản | Trạng thái | Ngừng sử dụng |
|---|---|---|
| 18.2.x | lts | 2026-10-9 |
| 19.0.x | lts | 2027-10-9 |
| 19.1.x | lts | 2027-10-9 |
| 19.2.x | hoạt động | - |
Tự động cập nhật hình ảnh cơ sở (ABIU)
Tính năng Tự động cập nhật hình ảnh cơ sở (ABIU) là một tính năng tự động áp dụng các bản vá bảo mật cho môi trường thời gian chạy cơ bản mà không yêu cầu bạn kích hoạt một đợt phát hành ứng dụng mới.
App Hosting mặc định bật ABIU cho các phần phụ trợ mới, với các yêu cầu cụ thể sau:
- Thời gian chạy theo phiên bản: Để sử dụng ABIU, bạn phải chỉ định một thời gian chạy theo phiên bản (chẳng hạn như
nodejs22hoặcnodejs24). App Hosting hỗ trợ các phiên bản Node.js có số chẵn, phản ánh khả năng hỗ trợ của Cloud Run. - Khớp với package.json: Phiên bản Node mà bạn chọn cho App Hosting phải tương thích với phiên bản được chỉ định trong trường
enginescủa tệppackage.json. Nếu có sự không khớp, bạn sẽ gặp lỗi thời gian xây dựng từ Cloud Build. Bất cứ khi nào bạn thay đổi trườngengines, hãy nhớ cập nhật thời gian chạy của phần phụ trợ trước khi triển khai.
Đang tắt ABIU
Nếu muốn chọn không sử dụng ABIU, bạn có thể tắt tính năng này trong quá trình làm quen hoặc bằng cách chọn "Not Specified" (Không chỉ định) cho thời gian chạy trong bảng điều khiển Firebase. Khi
sử dụng nodejs mặc định không có phiên bản, ABIU sẽ tự động bị tắt.
Quản lý phiên bản thời gian chạy
Bạn có thể xem và thay đổi phiên bản thời gian chạy của phần phụ trợ cũng như lựa chọn ưu tiên về ABIU bất cứ lúc nào trong thẻ Cài đặt của trang tổng quan App Hosting. Tuy nhiên, hãy lưu ý rằng việc thay đổi phiên bản thời gian chạy có thể làm hỏng ứng dụng của bạn nếu phiên bản mới không tương thích với mã của bạn.
Các phiên bản thời gian chạy cuối cùng sẽ kết thúc vòng đời hỗ trợ. Bạn cần cập nhật môi trường thời gian chạy để tránh những thay đổi có thể gây lỗi:
- Thời gian chạy không dùng nữa: Nếu thời gian chạy bạn chọn không còn được dùng nữa, thì ứng dụng của bạn thường sẽ tiếp tục hoạt động. Bạn sẽ nhận được cảnh báo trong bảng điều khiển và bạn nên chuyển sang phiên bản mới hơn càng sớm càng tốt. Để biết thêm thông tin, hãy xem tài liệu Cloud Run về vòng đời thời gian chạy.
- Môi trường thời gian chạy đã ngừng hoạt động: Môi trường thời gian chạy đã ngừng hoạt động hoàn toàn không được hỗ trợ. Bạn sẽ không được phép tạo bản dựng hoặc phần phụ trợ mới bằng phiên bản đã ngừng hoạt động. Nếu bạn cố gắng làm như vậy, hệ thống sẽ báo lỗi bản dựng. Các bản triển khai hiện có chạy trên các phiên bản đã ngừng hoạt động có thể ngừng hoạt động và Cloud Run giữ quyền xoá các bản triển khai đó.
Để xem danh sách đầy đủ các phiên bản Node được hỗ trợ, không dùng nữa và ngừng hoạt động, hãy tham khảo tài liệu về dịch vụ hỗ trợ thời gian chạy Cloud Run. Để biết thêm thông tin kỹ thuật về cách hoạt động của tính năng cập nhật hình ảnh cơ sở, hãy xem tài liệu về Cloud Run ABIU.
Trình quản lý gói
App Hosting sử dụng Cloud Native Buildpacks để thực thi việc cài đặt các phần phụ thuộc và tạo ứng dụng bằng npm, yarn hoặc pnpm. Các trình quản lý gói khác như JSR không được hỗ trợ.
NPM
- NPM là trình quản lý gói mặc định.
- Các phần phụ thuộc không phải trong môi trường thực tế sẽ bị loại bỏ sau khi tạo bản dựng thành công.
- Bạn có thể chỉ định phần phiên bản npm bằng trường
engines.npmtrong tệppackage.json.
Sợi
- Yarn được dùng thay thế khi bạn đưa tệp
yarn.lockvào dự án của mình. - Bạn có thể chỉ định phiên bản yarn cần sử dụng trong trường
engines.yarnhoặcpackageManagercủa tệppackage.json. - App Hosting hỗ trợ chế độ Yarn2 PnP.
Pnpm
- Pnpm được dùng thay thế khi bạn đưa tệp
pnpm-lock.yamlvào dự án. - Bạn có thể chỉ định một phiên bản pnpm trong trường
engines.pnpmhoặcpackageManagercủa tệppackage.json. - Để xem ví dụ về cách hoạt động, hãy xem ứng dụng sample-node-pnpm.
Monorepo cho App Hosting
App Hosting hỗ trợ các ứng dụng monorepo Nx và Turborepo. Hãy xem phần Sử dụng monorepo với App Hosting để biết hướng dẫn chi tiết.
Các phiên bản Nx sau đây được hỗ trợ:
| Phiên bản | Trạng thái | Ngừng sử dụng |
|---|---|---|
| 20.8.x | lts | không sớm hơn ngày 9/10/2027 |
Nếu bạn cần hỗ trợ cho các loại không gian làm việc monorepo khác, hãy cho chúng tôi biết tại Firebase UserVoice.