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:
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.