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ư đ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 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ủ 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.
Khung có bản dựng và triển khai được định cấu hình sẵn
Với bản dựng và triển khai được định cấu hình sẵn, Firebase sẽ xác định khung mà 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ì 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 đề và yêu cầu 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 và cấp độ hỗ trợ cụ thể.
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 thông số kỹ thuật của gói đầu ra . 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 Hostinghỗ 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 bạn muốn xem các khung bổ sung được App Hosting hỗ trợ, bạn có thể tạo bộ chuyển đổi khung hoặc liên hệ với người duy trì khung để chuyển đổi đầu ra bản dựng sang định dạng App Hosting. Bộ chuyển đổi Next.js và Angular là các ví dụ tham khảo hữu ích cho bất kỳ ai tạo bộ chuyển đổi.
Bạn có thể tìm thấy thông tin về các khung được cộng đồng hỗ trợ trên Firebase Open Source. Các vấn đề và yêu cầu tính năng cho các khung được cộng đồng hỗ trợ phải được gửi đế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à tuyến hỗ trợ đầu tiên cho các bộ chuyển đổi này.
Bộ chuyển đổi khung App Hosting
Trong App Hosting, hỗ trợ cho cả khung được định cấu hình sẵn và khung được 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ó 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) và tạo một gói đầu ra mà phần còn lại của App Hosting cơ sở hạ tầng có thể xử lý. - Chúng chạy lệnh xây dựng của ứng dụng để tạo tài sản tĩnh và tạo phiên bản được tối ưu hoá của ứng dụng cho quá trình sản xuất.
Bộ chuyển đổi khung tạo ứng dụng Node.js bằng npm run build, hoạt động tốt nhất với các tập lệnh xây 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 xây dựng bằng các lệnh xây 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 xây dựng và chạy
trong apphosting.yaml.
Nguồn cho bộ chuyển đổi Next.js và Angular có trong firebase-framework-tools.
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 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ả Cloud Run's phạm vi được hỗ trợ và phạm vi của khung web mà bạn đã chọn. Đối với 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ợ chủ độ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" được chỉ định hiện tại của chúng tôi 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" cho App Hosting.
App Hosting hỗ trợ dài hạn (LTS) cho phiên bản nhỏ mới nhất của bản phát hành chính trong một năm kể từ giai đoạn hỗ trợ chủ độ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 | đang hoạt động | không trước ngày 9 tháng 10 năm 2025 |
| 15.1.x | đang hoạt động | không trước ngày 9 tháng 10 năm 2025 |
| 15.2.x | đang 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 | đang hoạt động | không trước ngày 9 tháng 10 năm 2025 |
| 19.1.x | đang hoạt động | không trước ngày 9 tháng 10 năm 2025 |
| 19.2.x | đang hoạt động | - |
Tự động cập nhật hình ảnh cơ sở (ABIU)
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 quá trình triển khai ứ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 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 sự hỗ trợ của Cloud Run. - 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 lỗi trong 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 từ chối ABIU, bạn có thể tắt tính năng này trong quá trình thiết lập hoặc bằng cách
chọn "Không chỉ định" cho thời gian chạy trong bảng điều khiển Firebase. Khi sử dụng giá trị mặc định nodejs 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 và lựa chọn ưu tiên ABIU của phần phụ trợ bất cứ lúc nào tại 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 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 dùng nữa, ứ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.
- 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à việc cố gắng thực hiện việc này sẽ gây ra lỗi bản dựng. Các bản 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 bản triển khai đó.
Để biết 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 Cloud Run Hỗ trợ thời gian chạy. Để biết thêm thông tin kỹ thuật về cách hoạt động của các bản cập nhật hình ảnh cơ sở, hãy xem tài liệu ABIU Cloud Run.
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 sản xuất sẽ bị cắt bớt sau khi 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 sử dụng thay thế khi bạn đưa 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 được sử dụng thay thế khi bạn đưa tệp
pnpm-lock.yamlvào dự án. - Bạn có thể chỉ định phiên bản pnpm trong trường
engines.pnpmhoặcpackageManagercủa tệppackage.json. - Để xem ví dụ hoạt động, hãy xem sample-node-pnpm. ứng dụng.
Monorepos cho App Hosting
App Hosting hỗ trợ các ứng dụng dựa trên Nx. Hãy xem bài viết Sử dụng monorepos 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 | đang hoạt động | không trước ngày 9 tháng 10 năm 2025 |
| 20.1.x | đang hoạt động | không trước ngày 9 tháng 10 năm 2025 |
| 20.2.x | đang hoạt động | không trước ngày 9 tháng 10 năm 2025 |
| 20.3.x | đang hoạt động | không trước ngày 9 tháng 10 năm 2025 |
| 20.4.x | đang hoạt động | không trước ngày 9 tháng 10 năm 2025 |
| 20.5.x | đang hoạt động | không trước ngày 9 tháng 10 năm 2025 |
| 20.6.x | đang hoạt động | không trước ngày 9 tháng 10 năm 2025 |
| 20.7.x | đang hoạt động | — |
Nếu bạn cần được hỗ trợ về 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.