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 App Hosting Nx-basierte Anwendungen bereitstellen.

Monorepos mit der Firebase CLI bereitstellen

Die Monorepo-Unterstützung ist in den von Firebase aufgerufenen Backend-Einrichtungsablauf integriert. CLI-Befehl apphosting:backends:create. Nachdem Sie diesen Ablauf betreten und angegeben haben, Ihr ausgewähltes GitHub-Repository ist, werden Sie aufgefordert, das Stammverzeichnis Ihrer Anwendung anzugeben. Verzeichnis relativ zu Ihrem Repository; in der Eingabeaufforderung den Pfad zum Anwendung, die Sie im Monorepo bereitstellen möchten:

$ 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

Hier sind beispielsweise die Assets, die bei der folgenden Nx-Projektstruktur und „target-app“ als 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.

Monorepos mit der Firebase Console bereitstellen

Die Unterstützung für Monorepos ist in die grafische Einrichtung des Backends in der Firebase Console integriert. Wenn Sie unter „Bereitstellungseinstellungen“ nach einem „Stammverzeichnis“ gefragt werden, geben Sie den Pfad zur Anwendung an, die Sie im Monorepo bereitstellen möchten:

Screenshot der Ansicht zum Erstellen des Konsolen-Back-Ends

Fehlerbehebung bei der Monorepo-Bereitstellung

  • Wenn Sie das Stammverzeichnis verlassen Beim Einrichten des Backends war das Feld leer, in der App Hosting kann das Zielprojekt des Nutzers möglicherweise trotzdem erstellen und bereitstellen, wenn Er wird in der defaultProject der zugehörigen nx.json-Datei angegeben. Konfiguration Datei.
  • Wenn Sie weder das Stammverzeichnis noch ein defaultProject hat, schlägt der Build fehl und es wird eine Meldung angezeigt, die App Hosting kann im Nx-Monorepo kein Zielprojekt finden.
  • Für Nx- und Angular-Anwendungen müssen Sie die Anwendung mit dem Angular Application Builder erstellen. Die Angular-Anwendungs-Builder ist in project.json angegeben