Dzięki monorepo możesz porządkować wiele projektów i zarządzać nimi w jednym katalogu. Z tego przewodnika dowiesz się, jak zacząć wdrażać aplikacje oparte na Nx za pomocą App Hosting.
Wdrażanie monorepo za pomocą konsoli Firebase
Obsługa monorepo jest wbudowana w graficzny proces konfiguracji backendu w konsoli Firebase. Gdy w sekcji „Ustawienia wdrożenia” pojawi się prośba o podanie „Katalogu głównego”, podaj ścieżkę do aplikacji, którą chcesz wdrożyć w repozytorium:
Wdrażanie monorepo za pomocą wiersza poleceń Firebase
Obsługa monorepo jest wbudowana w proces konfiguracji backendu wywoływany przez polecenie interfejsu wiersza poleceń Firebase apphosting:backends:create
. Po wejściu w ten proces i określeniu wybranego repozytorium GitHub pojawi się prośba o podanie katalogu głównego aplikacji względem repozytorium. W tym momencie podaj ścieżkę do aplikacji, którą chcesz wdrożyć w monorepo:
$ firebase apphosting:backends:create --project [project-name]
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 przykładowe komponenty, które zostaną wdrożone w przypadku poniższej struktury projektu Nx i aplikacji „target-app”, którą chcesz skompilować i wdrożyć:
.
├── 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
.
Rozwiązywanie problemów z wdrażaniem monorepo
- Jeśli podczas konfigurowania backendu pozostawisz puste pole „katalog główny”, usługa App Hosting może nadal tworzyć i wdrażać projekt docelowy użytkownika, jeśli jest on określony w
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 repozytorium Nx. - W przypadku aplikacji Nx + Angular do ich tworzenia musisz użyć narzędzia do tworzenia aplikacji Angular. W pliku
project.json
określono narzędzie do tworzenia aplikacji Angular.