Monorepos mit App Hosting verwenden

Mit Monorepos können Sie mehrere Projekte in einem einzigen Verzeichnis organisieren und verwalten. In diesem Leitfaden wird beschrieben, wie Sie mit der Bereitstellung von Nx-basierten Apps mit App Hosting beginnen.

Monorepos mit der Firebase Console bereitstellen

Die Unterstützung von Monorepos ist in den grafischen Backend-Einrichtungsablauf in der Firebase Console integriert. Wenn Sie unter „Deployment-Einstellungen“ nach einem „Root-Verzeichnis“ gefragt werden, geben Sie den Pfad zur Anwendung an, die Sie im Monorepo bereitstellen möchten:

Screenshot der Ansicht für die Erstellung des Konsolen-Back-Ends

Monorepos mit der Firebase CLI bereitstellen

Die Monorepo-Unterstützung ist in den Backend-Einrichtungsprozess integriert, der durch den Firebase CLI-Befehl apphosting:backends:create aufgerufen wird. Nachdem Sie diesen Ablauf aufgerufen und das ausgewählte GitHub-Repository angegeben haben, werden Sie aufgefordert, das Stammverzeichnis Ihrer App relativ zum Repository anzugeben. Übergeben Sie an dieser Stelle den Pfad zu der Anwendung, die Sie im Monorepo bereitstellen möchten:

$ 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

Hier sind beispielsweise die Assets, die bei der folgenden Nx-Projektstruktur und „target-app“ als die Anwendung, die Sie erstellen und bereitstellen möchten, bereitgestellt würden:

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

Das Stammverzeichnis der App relativ zu Ihrem Repository ist apps/target-app.

Fehlerbehebung bei der Monorepo-Bereitstellung

  • Wenn Sie das Feld „Stammverzeichnis“ bei der Backend-Einrichtung leer lassen, kann App Hosting das Zielprojekt des Nutzers möglicherweise trotzdem erstellen und bereitstellen, wenn es im defaultProject der zugehörigen Konfigurationsdatei nx.json angegeben ist.
  • Wenn Sie weder das Feld „Stammverzeichnis“ noch ein defaultProject angeben, schlägt der Build fehl und es wird eine Meldung angezeigt, dass App Hosting kein Zielprojekt im Nx-Monorepo finden kann.
  • Für Nx- und Angular-Anwendungen müssen Sie die Anwendung mit dem Angular-Anwendungs-Builder erstellen. Der Angular-Anwendungs-Builder wird in project.json angegeben.