Używanie monorepozycji z App Hosting

Dzięki repozytorium mono możesz organizować wiele projektów i zarządzać nimi w jednym katalogu. Z tego przewodnika dowiesz się, jak rozpocząć wdrażanie aplikacji opartych na Nx za pomocą App Hosting.

Wdrażanie repozytoriów mono za pomocą wiersza poleceń Firebase

Obsługa monorepo jest wbudowana w proces konfiguracji zaplecza wywoływany przez polecenie wiersza poleceń Firebase apphosting:backends:create. Po przejściu przez ten proces i wybraniu repozytorium GitHub pojawi się prośba o wskazanie katalogu głównego aplikacji w stosunku do repozytorium. W tym miejscu podaj ścieżkę do aplikacji, którą chcesz wdrożyć w monorepozytorium:

$ 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

Oto na przykład zasoby, które zostaną wdrożone w ramach tej struktury projektu Nx i aplikacji „target-app”, którą chcesz skompilować i wdrażać:

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

Katalog główny aplikacji względem repozytorium to apps/target-app.

Wdrażanie repozytoriów mono w konsoli Firebase

Obsługa monorepo jest wbudowana w graficzny proces konfiguracji backendu w konsoli Firebase. Gdy pojawi się prośba o podanie „Katalogu głównego” w sekcji „Ustawienia wdrożenia”, określ ścieżkę do aplikacji, którą chcesz wdrożyć w monorepo:

Zrzut ekranu z widokiem tworzenia na zapleczu konsoli

Rozwiązywanie problemów z wdrażaniem monorepozytorium

  • Jeśli podczas konfiguracji backendu pozostawisz pole „root directory” puste, AppHosting może nadal kompilować i wdrażać projekt docelowy użytkownika, jeśli jest on określony w polu defaultProject powiązanego pliku konfiguracyjnego nx.json.
  • Jeśli nie określisz pola „root directory” ani defaultProject, kompilacja zakończy się niepowodzeniem i wyświetli komunikat, że App Hosting nie może znaleźć projektu docelowego w monorepo Nx.
  • W przypadku aplikacji Nx i Angular musisz użyć kreatora aplikacji Angular. Konstruktor aplikacji Angular jest określony w project.json