Używanie monorepozycji z App Hosting

Dzięki monorepozycjom możesz organizować wiele projektów i zarządzać nimi w ramach jednego katalogu. W tym przewodniku opisujemy, jak zacząć wdrażać aplikacje oparte na Nx za pomocą App Hosting.

Wdrażanie monorepozycji za pomocą interfejsu wiersza poleceń Firebase

Obsługa monorepo jest wbudowana w proces konfiguracji backendu wywoływany przez Firebase Polecenie interfejsu wiersza poleceń apphosting:backends:create. Gdy rozpoczniesz ten proces i określisz, wybranego repozytorium GitHub, pojawi się prośba o określenie katalogu głównego aplikacji katalogu względem repozytorium; w tym prompcie podaj ścieżkę do funkcji aplikację, którą chcesz wdrożyć w monorepo:

$ 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 zostałyby wdrożone na podstawie następujących danych Nx struktura projektu i „docelowa aplikacja” jako aplikację, którą chcesz skompilować, wdróż:

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

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

Wdrażanie monorepozycji za pomocą konsoli Firebase

Obsługa monorepo jest wbudowana w graficzny proces konfiguracji backendu w Firebase konsoli. 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 monorepozytorium:

Zrzut ekranu przedstawiający widok tworzenia backendu konsoli

Rozwiązywanie problemów z wdrażaniem monorepozytorium

  • Jeśli opuścisz „katalog główny” puste pole podczas konfiguracji backendu, aplikacja Hosting może nadal mieć możliwość kompilowania i wdrażania projektu docelowego użytkownika, jeśli jest określony w defaultProject powiązanego pliku nx.json konfiguracja .
  • Jeśli nie podasz „katalogu głównego” ani defaultProject, kompilacja zakończy się niepowodzeniem i wyświetli się komunikat informujący o tym, App Hosting nie może znaleźć projektu do kierowania w monorepozytorium Nx.
  • W przypadku aplikacji Nx + Angular musisz użyć aplikacji Angular kreatora, aby skompilować aplikację. Kreator aplikacji Angular jest określony w project.json