Avec les monorepos, vous pouvez organiser et gérer plusieurs projets dans un même répertoire. Ce guide explique comment commencer à déployer des applications basées sur Nx avec App Hosting.
Déployer des monorépertoires avec la CLI Firebase
La prise en charge des monorépertoires est intégrée au flux de configuration du backend appelé par la commande apphosting:backends:create
de la CLI Firebase. Une fois que vous avez lancé ce flux et spécifié le dépôt GitHub de votre choix, vous êtes invité à spécifier le répertoire racine de votre application par rapport à votre dépôt. À cette invite, transmettez le chemin d'accès à l'application que vous souhaitez déployer dans le monorépertoire:
$ 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
Par exemple, voici les éléments qui seraient déployés compte tenu de la structure de projet Nx suivante et de "target-app" comme application que vous souhaitez créer et déployer:
.
├── lib
├── apps
│ └── target-app
│ ├── project.json
│ └── src
│ └── ...
├── nx.json
├── package-lock.json
└── package.json
Le répertoire racine de l'application par rapport à votre dépôt est apps/target-app
.
Déployer des monorépertoires avec la console Firebase
La prise en charge des monorépertoires est intégrée au flux de configuration graphique du backend dans la console Firebase. Lorsque vous êtes invité à spécifier un "Répertoire racine" sous "Paramètres de déploiement", indiquez le chemin d'accès à l'application que vous souhaitez déployer dans le monorépertoire:
Résoudre les problèmes de déploiement monorépertoire
- Si vous laissez le champ "répertoire racine" vide lors de la configuration du backend, App Hosting peut toujours compiler et déployer le projet cible de l'utilisateur s'il est spécifié dans le
defaultProject
du fichier de configuration nx.json associé. - Si vous ne spécifiez ni le champ "répertoire racine" ni un
defaultProject
, la compilation échouera et affichera un message indiquant que App Hosting ne trouve pas de projet à cibler dans le monorépertoire Nx. - Pour les applications Nx + Angular, vous devez utiliser le compilateur d'applications Angular pour créer l'application. Le compilateur d'application Angular est spécifié dans
project.json
.