適用於 App Hosting 的架構和工具

Firebase App Hosting 專為支援以框架為中心的現代網頁應用程式開發而設計。本頁面可做為 App Hosting 直接支援的工具和架構參考資料,也是瞭解相關架構和工具的起點。

網頁框架和 App Hosting

App Hosting 為現代網頁架構提供兩種廣泛的支援:預先設定的建構和部署支援,以及透過符合輸出套件規格的開放原始碼貢獻,提供社群層級的支援。無論是哪種情況,架構轉接器元件都能將特定架構與 App Hosting 整合。

預先設定建構和部署支援的架構

Firebase 支援預先設定的建構和部署作業,會檢查 package-lock.json 檔案或其他鎖定檔案,找出您使用的架構,並為應用程式最佳化建構和部署程序。Google 致力於持續支援這些架構,Firebase 支援團隊也接受問題回報和功能要求。

這類支援服務適用於:

  • Next.js
  • Angular

如要進一步瞭解特定版本和支援等級,請參閱支援時間表。

如果您嘗試部署缺少鎖定檔案的 Node.js 應用程式,App Hosting 將無法建構及執行應用程式。您可以在根目錄中執行 npm install,建立 package-lock.json。

社群支援的框架

除了 Next.js 和 Angular 之外,App Hosting 也支援任何能提供符合輸出套件規格建構輸出的網頁框架。架構作者可以利用輸出套件規格,確保 App Hosting 支援其架構。舉例來說,熱門的 Nuxt 架構是由 Nitro 團隊支援,他們建構了 Firebase 轉接器,可在 App Hosting 上部署 Nuxt 應用程式。

如要查看 App Hosting 支援的其他架構,可以建立架構轉接器,或與架構維護人員聯絡,將建構輸出內容轉換為 App Hosting 格式。Next.js 和 Angular 轉接程式是建立轉接程式時的良好參考範例。

如要瞭解社群支援的架構,請前往 Firebase 開放原始碼。如對社群支援的架構有問題或功能要求,請直接向開放原始碼社群或架構作者提出。在某些情況下,Google 或許能提供協助,但社群是這些轉接器的第一線支援。

App Hosting 個框架轉接器

在 App Hosting 中,預先設定和社群支援的架構都是透過架構轉接器提供支援。App Hosting 架構轉接器有兩個主要角色:

  • 這些外掛程式會剖析原始碼和任何架構專屬的設定檔 (例如 next.config.js),並產生可由其餘 App Hosting 基礎架構處理的輸出套件。
  • 這些指令會執行應用程式的建構指令,產生靜態資產,並建立最佳化的正式版應用程式。

框架轉接器會使用 npm run build 建構 Node.js 應用程式,最適合搭配各框架的預設建構指令碼:Next.js 的 next build 和 Angular 的 ng build。App Hosting 會嘗試使用自訂建構指令建構,但無法保證成功。您可以在 apphosting.yaml 中覆寫建構和執行指令碼。

Next.js 和 Angular 轉接器的原始碼位於 apphosting-adapters。

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 22 以上版本

App Hosting 不會自動為新發布的架構版本提供主動支援。比目前指定「有效」版本更新的版本,會視為「預先發布版」狀態,直到正式標示為 App Hosting 的「有效」版本。

App Hosting 針對主要版本的最新子版本提供長期支援 (LTS),期限為自有效支援期起一年,前提是您必須持續更新至該子版本中的最新修補程式版本。請參閱下表,瞭解 Next.js 和 Angular 的詳細資料。

Next.js 支援時間表

版本 狀態 淘汰
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 有效 不早於 2026-10-9

Angular 支援時間表

版本 狀態 淘汰
18.2.x lts 2026-10-9
19.0.x lts 2027-10-9
19.1.x lts 2027-10-9
19.2.x 有效 -

自動更新基本映像檔 (ABIU)

基本映像檔自動更新 (ABIU) 功能會自動為基礎執行階段環境套用安全性修補程式,您不必觸發新的應用程式推出作業。

App Hosting 預設會為新後端啟用 ABIU,並有下列特定需求:

  • 版本化執行階段:如要使用 ABIU,您必須指定版本化執行階段 (例如 nodejs22 或 nodejs24)。App Hosting 支援偶數 Node.js 版本,與 Cloud Run 的支援方式相同。
  • package.json 比對:您為 App Hosting 選取的 Node 版本,必須與 package.json 檔案中 engines 欄位指定的版本相容。如果不相符,Cloud Build 會在建構時發生錯誤。每次變更 engines 欄位時,請務必先更新後端的執行階段,再進行部署。

停用 ABIU

如要停用 ABIU,可以在新手上路期間停用,或在 Firebase 控制台中將執行階段設為「未指定」。使用無版本 nodejs 預設值時,系統會自動停用 ABIU。

管理執行階段版本

您隨時可以前往 App Hosting 資訊主頁的「Settings」(設定) 分頁,查看及變更後端的執行階段版本和 ABIU 偏好設定。不過請注意,如果新版本與程式碼不相容,變更執行階段版本可能會導致應用程式中斷。

執行階段版本最終會達到支援生命週期終點。請務必更新執行階段,以免發生破壞性變更:

  • 已淘汰的執行階段:如果您選擇的執行階段已淘汰,應用程式通常會繼續運作。您會在控制台中收到警告,並應盡快改用較新版本。詳情請參閱執行階段生命週期的 Cloud Run 說明文件。
  • 已停用的執行階段:已停用的執行階段完全不受支援。您無法使用已停用的版本建立新的建構作業或後端,否則會擲回建構錯誤。在停用版本上執行的現有部署項目可能會停止運作,Cloud Run 保留刪除這些項目的權利。

如需支援、淘汰和停用的 Node 版本完整清單,請參閱 Cloud Run 執行階段支援說明文件。如要進一步瞭解基本映像檔更新的技術細節,請參閱 Cloud Run ABIU 說明文件。

套件管理工具

App Hosting 會使用 Cloud Native Buildpacks 安裝依附元件,並透過 npm、yarn 或 pnpm 建構應用程式。不支援 JSR 等其他套件管理工具。

NPM

  • NPM 是預設套件管理工具。
  • 建構成功後,系統會刪除非正式環境依附元件。
  • 您可以使用 package.json 檔案中的 engines.npm 欄位,指定 npm 版本。

毛線

  • 如果您在專案中加入 yarn.lock 檔案,系統會改用 Yarn。
  • 您可以在 package.json 檔案的 engines.yarn 或 packageManager 欄位中,指定要使用的 Yarn 版本。
  • App Hosting 支援 Yarn2 PnP 模式。

Pnpm

  • 如果專案中包含 pnpm-lock.yaml 檔案,系統會改用 pnpm。
  • 您可以在 package.json 檔案的 engines.pnpm 或 packageManager 欄位中指定 pnpm 版本。
  • 如需實際範例,請參閱 sample-node-pnpm 應用程式。

App Hosting 的單一存放區

App Hosting 支援 Nx 和 Turborepo 單一存放區應用程式。如需詳細指引,請參閱「搭配使用單一存放區和 App Hosting」。

支援的 Nx 版本如下:

版本 狀態 淘汰
20.8.x lts 不早於 2027-10-9

如需其他類型單一存放區工作區的支援,請前往 Firebase UserVoice 告訴我們。