Utilizzare i monorepo con App Hosting

Con i monorepo, puoi organizzare e gestire più progetti in una singola directory. Questa guida descrive come iniziare a eseguire il deployment di app basate su Nx con App Hosting.

Esegui il deployment di monorepo con la console Firebase

Il supporto dei monorepo è integrato nel flusso di configurazione del backend grafico nella console Firebase. Quando ti viene chiesto di specificare una "Directory principale" in "Impostazioni di deployment", indica il percorso dell'applicazione di cui vuoi eseguire il deployment all'interno del monorepo:

Screenshot della visualizzazione di creazione del backend della console

Esegui il deployment di monorepo con la CLI Firebase

Il supporto monorepo è integrato nel flusso di configurazione del backend richiamato dal comando dell'interfaccia a riga di comando Firebase apphosting:backends:create. Dopo aver inserito questo flusso e specificato il repository GitHub scelto, ti viene chiesto di specificare la directory root dell'app rispetto al repository. A questo prompt, passa il percorso dell'applicazione che vuoi eseguire il deployment all'interno del 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

Ad esempio, ecco gli asset che verranno sottoposti a deployment data la seguente struttura del progetto Nx e "target-app" come applicazione da creare e sottoporre a deployment:

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

La directory principale dell'app relativa al tuo repository è apps/target-app.

Risoluzione dei problemi di deployment di monorepo

  • Se lasci vuoto il campo "directory principale" durante la configurazione del backend, App Hosting potrebbe comunque essere in grado di creare e implementare il progetto di destinazione dell'utente se è specificato nel defaultProject del file di configurazione nx.json correlato.
  • Se non specifichi né il campo "directory principale" né un defaultProject, la build non andrà a buon fine e verrà visualizzato un messaggio che indica che App Hosting non riesce a trovare un progetto di destinazione all'interno del monorepo Nx.
  • Per le applicazioni Nx + Angular, devi utilizzare il builder di applicazioni Angular per creare l'applicazione. Il generatore di applicazioni Angular è specificato in project.json