Monorepos ile birden fazla projeyi tek bir dizinde düzenleyip yönetebilirsiniz. Bu kılavuzda, Nx tabanlı uygulamaları App Hosting ile dağıtmaya nasıl başlayacağınız açıklanmaktadır.
Monorepo'ları Firebase CLI ile dağıtma
Monorepo desteği, Firebase CLI komutu apphosting:backends:create
tarafından çağrılan arka uç kurulum akışına yerleştirilmiştir. Bu akışa girip seçtiğiniz GitHub deposunu belirttikten sonra, uygulamanızın deponuza göre kök dizini belirtmeniz istenir. Bu istemde, monorepo içinde dağıtmak istediğiniz uygulamanın yolunu iletin:
$ 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
Örneğin, aşağıdaki Nx proje yapısına ve derleyip dağıtmak istediğiniz uygulama olarak "target-app"e göre dağıtılacak öğeler şunlardır:
.
├── lib
├── apps
│ └── target-app
│ ├── project.json
│ └── src
│ └── ...
├── nx.json
├── package-lock.json
└── package.json
Uygulamanın, deponuza göre kök dizini apps/target-app
.
Firebase konsoluyla monorepo dağıtma
Monorepo desteği, Firebase konsolundaki grafik arka uç kurulum akışına yerleştirilmiştir. "Yayınlama ayarları" bölümünde "Kök dizin" istendiğinde, monorepo içinde dağıtmak istediğiniz uygulamanın yolunu belirtin:
Monorepo dağıtımıyla ilgili sorunları giderme
- Arka uç kurulumu sırasında "root directory" alanını boş bırakırsanız App Hosting, ilgili nx.json yapılandırma dosyasının
defaultProject
bölümünde belirtilmişse kullanıcının hedef projesini derleyip dağıtabilir. - "Kök dizin" alanını veya bir
defaultProject
belirtmezseniz derleme başarısız olur ve Nx monorepo içinde hedeflenecek bir proje bulunamadığına dair bir mesaj görüntülenir.App Hosting - Nx + Angular uygulamaları için uygulamayı oluşturmak üzere Angular uygulama derleyicisini kullanmanız gerekir. Angular uygulama oluşturucu,
project.json
içinde belirtilmiştir