Usar monorepos com o App Hosting

Com os monorepos, você pode organizar e gerenciar vários projetos de uma única diretório. Este guia descreve como começar a implantar aplicativos baseados em Nx com Hospedagem de apps.

Implantar monorepos com a CLI do Firebase

O suporte ao Monorepo é integrado ao fluxo de configuração do back-end invocado pelo Firebase Comando da CLI apphosting:backends:create. Depois de inserir esse fluxo e especificar seu repositório do GitHub escolhido, você será solicitado a especificar a raiz do aplicativo em relação ao seu repositório. neste prompt, transmita o caminho para o que você quer implantar dentro do 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 exemplo, estes são os recursos que seriam implantados com o seguinte Nx estrutura do projeto e “target-app” como o aplicativo que você quer criar e implantar:

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

O diretório raiz do app em relação ao seu repositório é apps/target-app.

Implantar monorepos com o Console do Firebase

O suporte ao Monorepo está integrado ao fluxo gráfico de configuração do back-end no Firebase no console do Google Cloud. Quando um "diretório raiz" for solicitado em "Configurações de implantação", Especifique o caminho do aplicativo que você quer implantar dentro do monorepo:

Captura de tela da visualização de criação do back-end do console

Solução de problemas da implantação do monorepo

  • Se você sair do "diretório raiz" campo em branco durante a configuração do back-end, app O Hosting ainda poderá criar e implantar o projeto de destino do usuário se ele seja especificado no arquivo defaultProject do arquivo nx.json configuração arquivo.
  • Se você não especificar o "diretório raiz" nem um defaultProject, o build falhará e exibirá uma mensagem que O App Hosting não consegue encontrar um projeto para segmentar dentro do monorepo Nx.
  • Para aplicativos Nx + Angular, você precisa usar o aplicativo Angular builder para criar o aplicativo. A O builder de aplicativos do Angular está especificado em project.json.