Uygulama Barındırma ile monorepo kullanma

Monorepo ile birden fazla projeyi tek bir seferde organize edebilir ve yönetebilirsiniz. dizin. Bu kılavuzda, Nx tabanlı uygulamaları Uygulama Barındırma.

Firebase CLI ile monorepo dağıtma

Monorepo desteği, Firebase tarafından çağrılan arka uç kurulum akışında yerleşik olarak bulunur. CLI komutu apphosting:backends:create. Bu akışa girip uygulamanızın kök değerini belirtmeniz istenir. dizin oluşturun. bu istemde, yolu uygulama:

$ 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 değerine göre dağıtılacak öğeler proje yapısı ve "hedef-uygulama" oluşturmak istediğiniz uygulama olarak dağıt:

.
    ├── 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 şeklindedir.

Firebase konsoluyla monorepo dağıtma

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

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

Monorepo dağıtımıyla ilgili sorunları giderme

  • "Kök dizin"den ayrılırsanız arka uç kurulumu sırasında boş alan, Uygulama Hosting, aşağıdaki durumlarda kullanıcının hedef projesini oluşturup dağıtabilir ilgili nx.json dosyasının defaultProject içinde belirtilir yapılandırma dosyası olduğundan emin olun.
  • "Kök dizin" belirtmezseniz alanı veya a defaultProject değerini alırsa derleme başarısız olur ve App Hosting, Nx monorepo içinde hedeflenecek bir proje bulamıyor.
  • Nx + Angular uygulamalarında Angular uygulaması oluşturucuyu ayarlayın. İlgili içeriği oluşturmak için kullanılan Angular uygulama oluşturucu, project.json içinde belirtilmiştir