Com monorepos, você pode organizar e gerenciar vários projetos em um único diretório. Este guia descreve como começar a implantar apps baseados em Nx com App Hosting.
Implantar monorepos com a CLI do Firebase
O suporte a monorepos é integrado ao fluxo de configuração do back-end invocado pelo comando apphosting:backends:create
da CLI do Firebase. Depois de entrar nesse fluxo e especificar
o repositório do GitHub escolhido, você vai receber uma solicitação para especificar o diretório
raiz do app em relação ao repositório. Nesse prompt, transmita o caminho para o
aplicativo que você quer implantar no 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 a seguinte estrutura de projeto do Nx 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 repositório é apps/target-app
.
Implantar monorepos com o console do Firebase
O suporte a monorepos está integrado ao fluxo de configuração de back-end gráfico no console do Firebase. Quando solicitado um "diretório raiz" em "Configurações de implantação", especifique o caminho para o aplicativo que você quer implantar no monorepo:
Solução de problemas de implantação de monorepo
- Se você deixar o campo "diretório raiz" em branco durante a configuração do back-end, o App
Hosting ainda poderá criar e implantar o projeto de destino do usuário se
ele for especificado no
defaultProject
do arquivo de configuração nx.json relacionado. - Se você não especificar o campo "diretório raiz" nem um
defaultProject
, o build vai falhar e mostrar uma mensagem informando que App Hosting não consegue encontrar um projeto para segmentar dentro do monorepo do Nx. - Para aplicativos Nx + Angular, é necessário usar o criador de aplicativos Angular. O
builder do aplicativo Angular é especificado em
project.json