Dengan monorepo, Anda dapat mengatur dan mengelola beberapa project dalam satu direktori. Panduan ini menjelaskan cara mulai men-deploy aplikasi berbasis Nx dengan App Hosting.
Men-deploy monorepo dengan Firebase CLI
Dukungan monorepo sudah terintegrasi dalam alur penyiapan backend yang dipanggil oleh perintah Firebase CLI apphosting:backends:create
. Setelah memasuki alur ini dan menentukan repositori GitHub yang dipilih, Anda akan diminta untuk menentukan direktori utama aplikasi yang relatif terhadap repositori Anda; pada perintah ini, teruskan jalur ke aplikasi 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 berdasarkan struktur project Nx dan "target-app" berikut sebagai aplikasi yang ingin di-build dan di-deploy:
.
├── lib
├── apps
│ └── target-app
│ ├── project.json
│ └── src
│ └── ...
├── nx.json
├── package-lock.json
└── package.json
Direktori root aplikasi yang relatif terhadap repositori Anda adalah apps/target-app
.
Men-deploy monorepo dengan Firebase console
Dukungan monorepo di-build ke dalam alur penyiapan backend grafis di Firebase console. Saat diminta untuk memasukkan "Root directory" di bagian "Deployment settings", tentukan jalur ke aplikasi yang ingin Anda deploy di dalam monorepo:
Memecahkan masalah deployment monorepo
- Jika Anda membiarkan kolom "root directory" kosong selama penyiapan backend, Hosting
Aplikasi mungkin masih dapat mem-build dan men-deploy project target pengguna jika
ditentukan dalam
defaultProject
dari file konfigurasi nx.json terkait. - Jika Anda tidak menentukan kolom "root directory" atau
defaultProject
, 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 builder aplikasi Angular untuk mem-build aplikasi. Builder aplikasi Angular ditentukan di
project.json