← Cloudflare Pages / pages / configuration
Монорепозитории
Некоторые приложения создаются на основе одного репозитория, но Pages также поддерживает приложения с более сложной структурой. Монорепозиторием называется репозиторий, содержащий несколько подкаталогов, каждый из которых содержит собственное приложение.
Настройка
Из одного репозитория можно создать несколько проектов, так же, как вы создали бы любой другой проект Pages. Вы можете изменить команду сборки и (или) корневой каталог проекта, чтобы указать Pages, где должна выполняться команда сборки. Все имена проектов должны быть уникальными, даже если они подключены к одному репозиторию.
Builds
При подключении git-репозитория к Pages изменение любого файла в репозитории по умолчанию запускает сборку Pages.
Возьмём, к примеру, my-monorepo выше с двумя связанными проектами Pages (marketing-app и ecommerce-app) и перечисленные зависимости. По умолчанию, если вы изменяете файл в каталоге проекта для marketing-app, затем сборка для ecommerce-app проект также будет запущен, хотя ecommerce-app и его зависимости не изменились. Чтобы избежать таких повторных сборок, можно указать включение и исключение пути отслеживания сборки или ветки чтобы указать, должен ли Pages пропускать сборку для данного проекта.
Интеграция с Git
После того как вы создадите отдельный проект Pages для каждого проекта в репозитории Git, каждый git push будет запускать новую сборку и развёртывание для всех подключённых проектов, если иное не указано в конфигурации сборки.
Если с веткой связан Pull Request, GitHub добавляет отдельный комментарий для каждого проекта с обновленным URL-адресом проекта и развертывания.
GitHub check runs и GitLab commit statuses
Если с вашим репозиторием связано несколько проектов, ваш GitHub check run ↗ или Gitlab commit status ↗ будет выглядеть в вашем репозитории следующим образом:

Если сборка пропускается по любой причине (например, из-за CI Skip, путей отслеживания сборки или элементов управления развертыванием по веткам), статус проверки или коммита не появится.
Инструменты для управления монорепозиторием:
Pages не предоставляет специализированных инструментов для управления зависимостями в монорепозиториях, но вы можете подключить дополнительные инструменты для управления репозиторием. Для простого управления подпакетами можно использовать такие инструменты, как npm ↗, pnpm ↗, а также Yarn ↗ workspaces. Вы также можете использовать более мощные инструменты, такие как Turborepo ↗, NX ↗, или Lerna ↗ для дополнительного управления зависимостями и выполнением задач.
Ограничения
- Необходимо использовать Build System V2 или более позднюю версию, чтобы была включена поддержка монорепозиториев.
- На один репозиторий можно настроить не более 5 проектов Pages. Если нужно увеличить этот лимит, обратитесь к своей команде по работе с аккаунтом Cloudflare или используйте Форма запроса на увеличение лимита ↗.