透過 App Hosting 使用單一存放區

使用單個存放區,您可以在單一目錄中整理及管理多個專案。本指南說明如何開始使用 App Hosting 部署以 Nx 為基礎的應用程式。

使用 Firebase CLI 部署單一存放區

Firebase CLI 指令 apphosting:backends:create 會在後端設定流程中提供單一版本庫支援。進入這個流程並指定所選 GitHub 存放區後,系統會提示您指定相對於存放區的應用程式根目錄;在這個提示中,請將路徑傳遞至要在單一存放區中部署的應用程式:

$ firebase apphosting:backends:create --project [project-name] --location us-central1
i  === Import a GitHub repository
✔  Connected with GitHub successfully

? Which GitHub repo do you want to deploy? gh-username/nx-monorepo
? Specify your app's root directory relative to your repository path/to/app

舉例來說,以下是根據下列 Nx 專案結構,以及「target-app」(目標應用程式) 為您要建構及部署的應用程式,將會部署的資產:

.
    ├── lib
    ├── apps
    │   └── target-app
    │       ├── project.json
    │       └── src
    │           └── ...
    ├── nx.json
    ├── package-lock.json
    └── package.json

與存放區相關的應用程式根目錄是 apps/target-app

使用 Firebase 主控台部署單一來源

Firebase 主控台的圖形後端設定流程中已內建 Monorepo 支援功能。系統提示「Deployment settings」(部署設定) 下顯示「Root Directory」(根目錄) 時,請指定您要在單聲道存放區內部署的應用程式路徑:

主控台後端建立檢視畫面的螢幕截圖

排解 monorepo 部署問題

  • 如果在後端設定期間將「根目錄」欄位留空,則若已在相關 nx.json 設定檔defaultProject 中指定使用者,應用程式主機仍可建構及部署使用者的目標專案。
  • 如果您未指定「root directory」欄位或 defaultProject,則建構作業會失敗,並顯示 App Hosting 無法在 Nx monorepo 中找到目標專案的訊息。
  • 針對 Nx + Angular 應用程式,您必須使用 Angular 應用程式建構工具來建構應用程式。您會在 project.json 中指定 Angular 應用程式建構工具