Usa monorepos con App Hosting

Con monorepos, puedes organizar y administrar varios proyectos en un solo . En esta guía, se describe cómo comenzar a implementar apps basadas en Nx con Hosting de apps.

Implementa monorepos con Firebase CLI

La compatibilidad con Monorepo está integrada en el flujo de configuración del backend que invoca Firebase Comando de la CLI apphosting:backends:create. Después de ingresar a este flujo y especificar el repositorio de GitHub que elegiste, se te pedirá que especifiques el directorio raíz de tu app directorio en relación con tu repositorio; en esta instrucción, pasa la ruta de acceso al aplicación que quieres implementar dentro del monorepo:

$ 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

Por ejemplo, estos son los recursos que se implementarían con las siguientes Nx: estructura del proyecto y “target-app” que la aplicación que quieres compilar y implementar:

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

El directorio raíz de la app en relación con tu repositorio es apps/target-app.

Implementa monorepos con Firebase console

La compatibilidad con Monorepo está integrada en el flujo de configuración del backend gráfico en Firebase. la consola de Cloud. Cuando se te solicite un “directorio raíz” en "Configuración de implementación" Especifica la ruta de acceso a la aplicación que quieres implementar dentro del monorepo:

Captura de pantalla de la vista de creación del backend de la consola

Soluciona problemas de implementación de monorepo

  • Si abandonas el “directorio raíz” campo en blanco durante la configuración del backend, aplicación Hosting aún podrá compilar e implementar el proyecto de destino del usuario si se especifica en el archivo defaultProject del archivo nx.json relacionado configuración archivo.
  • Si no especificas el "directorio raíz" ni una defaultProject, la compilación fallará y se mostrará el mensaje Hosting de apps no puede encontrar un proyecto para orientar dentro del monorepo Nx.
  • Para las aplicaciones Nx + Angular, debes usar la aplicación de Angular Builder para compilar la aplicación. El El compilador de aplicaciones de Angular se especifica en project.json.