使用單個存放區,您可以在單一目錄中整理及管理多個專案。本指南說明如何開始使用 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 應用程式建構工具