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 告訴我們。