Les monorepos vous permettent d'organiser et de 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 monorepos avec la console Firebase
La prise en charge des monorepos est intégrée au flux de configuration du backend graphique dans la console Firebase. Lorsque vous êtes invité à indiquer un "Répertoire racine" sous "Paramètres de déploiement", spécifiez le chemin d'accès à l'application que vous souhaitez déployer dans le monorepo :
Déployer des monorepos avec la CLI Firebase
La prise en charge des monorepos est intégrée au flux de configuration du backend appelé par la commande Firebase CLI apphosting:backends:create
. Une fois que vous avez saisi 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 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
Par exemple, voici les composants qui seraient déployés avec la structure de projet Nx suivante et "target-app" comme application à compiler 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
.
Résoudre les problèmes de déploiement de monorepos
- Si vous laissez le champ "Répertoire racine" vide lors de la configuration du backend, App Hosting peut toujours être en mesure de compiler et de 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 cible dans le monorepo Nx. - Pour les applications Nx + Angular, vous devez utiliser le compilateur d'application Angular pour compiler l'application. Le compilateur d'application Angular est spécifié dans
project.json
.