Uygulama Barındırma ile monorepo kullanma

Tek depolu sistemlerle birden fazla projeyi tek bir dizinde düzenleyip yönetebilirsiniz. Bu kılavuzda, App Hosting ile Nx tabanlı uygulamaları dağıtmaya nasıl başlayacağınız açıklanmaktadır.

Firebase konsoluyla monorepo'ları dağıtma

Monorepo desteği, Firebase konsolundaki grafik arka uç kurulum akışına yerleştirilmiştir. "Dağıtım ayarları" bölümünde "Kök dizin" istenirse monorepo içinde dağıtmak istediğiniz uygulamanın yolunu belirtin:

Konsol arka uç oluşturma görünümünün ekran görüntüsü

Firebase CLI ile monorepo'ları dağıtma

Monorepo desteği, Firebase CLI komutu apphosting:backends:create ile ç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 kök dizinini deponuza göre belirtmeniz istenir. Bu istemde, monorepo içinde dağıtmak istediğiniz uygulamanın yolunu iletin:

$ 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

Örneğin, aşağıdaki Nx proje yapısı ve oluşturup dağıtmak istediğiniz uygulama olarak "target-app" göz önüne alındığında 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.

Tek depolu dağıtımla ilgili sorunları giderme

  • Arka uç kurulumu sırasında "kök dizin" alanını boş bırakırsanız App Hosting, ilgili nx.json yapılandırma dosyasının defaultProject bölümünde belirtilmesi koşuluyla kullanıcının hedef projesini oluşturup dağıtabilir.
  • Ne "kök dizin" alanını ne de bir defaultProject belirtirseniz derleme başarısız olur ve Nx monoreposunda hedeflenecek bir proje bulunamadığını belirten bir mesaj gösterilir. App Hosting
  • Nx + Angular uygulamaları için uygulamayı oluşturmak üzere Angular uygulama oluşturucuyu kullanmanız gerekir. Angular uygulama oluşturucu, project.json içinde belirtilir.