Khung và công cụ cho tính năng Lưu trữ ứng dụng

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 engines của tệp package.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ường engines, 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.npm trong tệp package.json.

Sợi

  • Yarn được sử dụng thay thế khi bạn đưa tệp yarn.lock vào dự án.
  • Bạn có thể chỉ định phiên bản yarn để sử dụng trong trường engines.yarn hoặc packageManager của tệp package.json.
  • App Hosting hỗ trợ chế độ Yarn2 PnP.

Pnpm

  • Pnpm được sử dụng thay thế khi bạn đưa tệp pnpm-lock.yaml vào dự án.
  • Bạn có thể chỉ định phiên bản pnpm trong trường engines.pnpm hoặc packageManager của tệp package.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.