透過 App Hosting 使用單一存放區

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

使用 Firebase CLI 部署單一存放區

Firebase CLI 指令 apphosting:backends:create 會在後端設定流程中提供 Monorepo 支援功能。進入這個流程並指定所選 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 支援功能。當「部署設定」下方出現「根目錄」提示時,請指定要部署至單一版本庫中的應用程式路徑:

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

排解單一版本庫部署問題

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