С помощью монорепозиториев вы можете организовывать и управлять несколькими проектами в одном каталоге. В этом руководстве описывается, как приступить к развертыванию приложений на базе Nx с помощью App Hosting .
Развертывание монорепозиториев с помощью Firebase CLI
Поддержка Monorepo встроена в процесс настройки серверной части, вызываемый командой Firebase CLI apphosting:backends:create
. После того, как вы войдете в этот процесс и укажете выбранный вами репозиторий GitHub, вам будет предложено указать корневой каталог вашего приложения относительно вашего репозитория; в этом приглашении укажите путь к приложению, которое вы хотите развернуть внутри монорепозитория:
$ 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
Например, вот ресурсы, которые будут развернуты при следующей структуре проекта Nx и «целевом приложении» в качестве приложения, которое вы хотите создать и развернуть:
.
├── lib
├── apps
│ └── target-app
│ ├── project.json
│ └── src
│ └── ...
├── nx.json
├── package-lock.json
└── package.json
Корневой каталог приложения относительно вашего репозитория — apps/target-app
.
Развертывание монорепозиториев с помощью консоли Firebase
Поддержка Monorepo встроена в процесс настройки графического бэкэнда в консоли Firebase. При появлении запроса «Корневой каталог» в разделе «Параметры развертывания» укажите путь к приложению, которое вы хотите развернуть внутри монорепозитория:
Устранение неполадок при развертывании монорепозитория
- Если вы оставите поле «корневой каталог» пустым во время настройки серверной части, хостинг приложений все равно сможет создать и развернуть целевой проект пользователя, если он указан в
defaultProject
соответствующего файла конфигурации nx.json . - Если вы не укажете ни поле «корневой каталог», ни
defaultProject
, сборка завершится ошибкой и отобразится сообщение о том, что App Hosting не может найти целевой проект внутри монорепозитория Nx. - Для приложений Nx + Angular вы должны использовать сборщик приложений Angular для сборки приложения. Разработчик приложений Angular указан в
project.json