Menggunakan monorepos dengan App Hosting

Dengan monorepos, Anda dapat mengatur dan mengelola banyak project dalam satu saat ini. Panduan ini menjelaskan cara mulai men-deploy aplikasi berbasis Nx dengan Hosting Aplikasi.

Men-deploy monorepo dengan Firebase CLI

Dukungan monorepo terintegrasi dalam alur penyiapan backend yang dipanggil oleh Firebase Perintah CLI apphosting:backends:create. Setelah Anda memasuki alur ini dan menentukan repositori GitHub pilihan Anda, Anda akan diminta untuk menentukan direktori terkait repositori Anda; pada prompt ini, teruskan jalur ke yang ingin Anda deploy di dalam monorepo:

$ 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

Misalnya, berikut adalah aset yang akan di-deploy dengan Nx berikut struktur project dan "target-app" sebagai aplikasi yang ingin Anda bangun dan terapkan:

.
    ├── lib
    ├── apps
    │   └── target-app
    │       ├── project.json
    │       └── src
    │           └── ...
    ├── nx.json
    ├── package-lock.json
    └── package.json

Direktori utama aplikasi yang terkait dengan repositori Anda adalah apps/target-app.

Men-deploy monorepo dengan Firebase console

Dukungan monorepo di-build ke dalam alur penyiapan backend grafis di Firebase konsol. Saat diminta memasukkan "Direktori root" di bagian "Setelan deployment", tentukan jalur ke aplikasi yang ingin Anda deploy di dalam monorepo:

Screenshot tampilan pembuatan backend konsol

Memecahkan masalah deployment monorepo

  • Jika Anda keluar dari "direktori root" kolom kosong selama penyiapan backend, Aplikasi Hosting masih dapat membangun dan men-deploy project target pengguna jika hal ini ditentukan dalam defaultProject dari nx.json terkait konfigurasi file.
  • Jika Anda tidak menetapkan "direktori root" atau kolom defaultProject, maka build akan gagal dan menampilkan pesan bahwa App Hosting tidak dapat menemukan project yang akan ditargetkan di dalam monorepo Nx.
  • Untuk aplikasi Nx + Angular, Anda harus menggunakan aplikasi Angular builder untuk membuat aplikasi. Tujuan Builder aplikasi Angular ditentukan di project.json