適用於 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 支援時間表

版本 狀態 淘汰
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 資訊主頁的「設定」分頁中,查看及變更後端的執行階段版本和 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 Monorepo 應用程式。如需詳細指引,請參閱「搭配 App Hosting 使用單一存放區」。

支援的 Nx 版本如下:

版本 狀態 淘汰
20.8.x lts 不得早於 2027 年 10 月 9 日

如需其他類型 Monorepo 工作區的支援服務,請前往 Firebase UserVoice 告訴我們。