Firebase App Hosting được thiết kế riêng để hỗ trợ hoạt động 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 hình mà App Hosting hỗ trợ trực tiếp, cũng như điểm khởi đầu để tìm hiểu về các khung hình và công cụ có liên quan.
Khung web và App Hosting
App Hosting cung cấp 2 cấp độ hỗ trợ rộng rãi cho các khung web hiện đại: hỗ trợ bản dựng và triển khai được định cấu hình sẵn, cũng như hỗ trợ ở cấp cộng đồng thông qua các đóng góp nguồn mở tuân thủ quy cách 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ó chế độ hỗ trợ triển khai và tạo sẵn
Với chế độ hỗ trợ tạo và triển khai được định cấu hình sẵn, Firebase sẽ xác định khung mà bạn đang 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 tạo và triển khai cho ứng dụng của bạn. Google cam kết duy trì chế độ hỗ trợ cho các khung này và nhóm hỗ trợ của Firebase có thể chấp nhận báo cáo vấn đề cũng như 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 hỗ trợ để biết thông tin chi tiết về các phiên bản cụ thể và mức độ hỗ trợ.
Nếu bạn cố gắng triển khai một ứng dụng Node.js bị 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 được 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 đầu ra bản dựng phù hợ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 quy cách 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 đã tạo 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 hình khác được App Hosting hỗ trợ, bạn có thể tạo một bộ chuyển đổi khung hình hoặc liên hệ với người duy trì khung hình để chuyển đổi các đầu ra bản dựng sang định dạng App Hosting. Các bộ chuyển đổi Next.js và Angular là những ví dụ tham chiếu hữu ích cho bất kỳ ai tạo bộ chuyển đổi.
Bạn có thể xem thông tin về các khung được cộng đồng hỗ trợ trên trang Firebase nguồn mở. Các vấn đề và yêu cầu về tính năng đối với những khung hình được cộng đồng hỗ trợ cần được gửi đến cộng đồng nguồn mở hoặc tác giả của khung hình. Trong một số trường hợp, Google có thể hỗ trợ, nhưng cộng đồng là tuyến hỗ trợ đầu tiên cho những bộ chuyển đổi này.
App Hosting bộ chuyển đổi khung
Trong App Hosting, chế độ hỗ trợ cho cả khung được định cấu hình sẵn và khung do cộng đồng hỗ trợ đều được cung cấp thông qua các bộ chuyển đổi khung. Bộ chuyển đổi khung App Hosting có 2 vai trò chính:
- Chúng 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 tạo bản dựng của ứng dụng để tạo tài sản tĩnh và tạo một phiên bản được tối ưu hoá của ứng dụng cho bản phát hành công khai.
Bộ điều hợp khung sẽ tạo ứng dụng Node.js của bạn bằng npm run build, hoạt động hiệu quả nhất với tập lệnh tạo 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 một cách đáng tin cậy. Bạn có thể ghi đè tập lệnh tạo và chạy trong apphosting.yaml.
Nguồn cho bộ chuyển đổi Next.js và Angular có trong firebase-framework-tools.
Thời lượng của 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 chế độ 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 Node.js sau đây được hỗ trợ:
- Next.js 13.5.x trở lên
- Angular 18.2.x trở lên
- Node.js 20 trở lên
App Hosting không tự động cung cấp dịch vụ hỗ trợ đang hoạt động cho 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 "đang hoạt động" mà chúng tôi hiện chỉ định sẽ được coi là ở trạng thái "xem trước" cho đến khi chính thức được đánh dấu là "đang hoạt động" đối với 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 liên tục 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 | hoạt động | không trước ngày 9 tháng 10 năm 2025 |
| 15.1.x | hoạt động | không trước ngày 9 tháng 10 năm 2025 |
| 15.2.x | hoạt động | - |
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 | hoạt động | không trước ngày 9 tháng 10 năm 2025 |
| 19.1.x | hoạt động | không trước ngày 9 tháng 10 năm 2025 |
| 19.2.x | hoạt động | - |
Tự động cập nhật hình ảnh cơ bản (ABIU)
Tính năng Cập nhật tự động 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 quy trình triển khai ứng dụng mới.
App Hosting mặc định cho phép 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ư
nodejs20,nodejs22,nodejs24). 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. - package.json matching (so khớp 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 phải 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.
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 tham gia hoặc bằng cách chọn "Không xác đị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ũng như lựa chọn ưu tiên ABIU của phần phụ trợ bất cứ lúc nào trong thẻ Settings (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ể khiến ứng dụng của bạn gặp lỗi 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 thời gian chạy để tránh các thay đổi 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 một 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.
- Thời gian chạy ngừng hoạt độ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 và nếu cố gắng làm như vậy, bạn sẽ gặp lỗi bản dựng. Các hoạt động triển khai hiện có đang 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 có quyền xoá các hoạt động 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 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 bản cập nhật hình ảnh cơ sở, hãy xem Cloud Runtài liệu ABIU.
Trình quản lý gói
App Hosting sử dụng Cloud Native Buildpacks để thực thi quá trình 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 là bản phát hành công khai sẽ bị cắt bớt sau khi bản dựng được tạo thành công.
- Bạn có thể chỉ định phần phiên bản npm bằng cách sử dụng trường
engines.npmtrong tệppackage.json.
Sợi
- Yarn sẽ được dùng thay thế khi bạn thêm tệp
yarn.lockvào dự án. - Bạn có thể chỉ định phiên bản yarn để sử dụng trong trường
engines.yarnhoặcpackageManagercủa tệppackage.json. - App Hosting hỗ trợ chế độ Yarn2 PnP.
Pnpm
- Pnpm sẽ đượ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ụ minh hoạ, hãy xem sample-node-pnpm. ứng dụng.
Monorepo cho App Hosting
App Hosting hỗ trợ các ứng dụng dựa trên Nx. 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 |
|---|---|---|
| 19.5.x | bảo trì | 2025-10-9 |
| 19.6.x | bảo trì | 2025-10-9 |
| 19.7.x | bảo trì | 2025-10-9 |
| 19.8.x | lts | 2026-10-9 |
| 20.0.x | hoạt động | không trước ngày 9 tháng 10 năm 2025 |
| 20.1.x | hoạt động | không trước ngày 9 tháng 10 năm 2025 |
| 20.2.x | hoạt động | không trước ngày 9 tháng 10 năm 2025 |
| 20.3.x | hoạt động | không trước ngày 9 tháng 10 năm 2025 |
| 20.4.x | hoạt động | không trước ngày 9 tháng 10 năm 2025 |
| 20.5.x | hoạt động | không trước ngày 9 tháng 10 năm 2025 |
| 20.6.x | hoạt động | không trước ngày 9 tháng 10 năm 2025 |
| 20.7.x | hoạt động | — |
Nếu bạn cần được 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.