Với monorepo, bạn có thể sắp xếp và quản lý nhiều dự án trong một thư mục duy nhất. Hướng dẫn này mô tả cách bắt đầu triển khai các ứng dụng dựa trên Turborepo hoặc Nx bằng App Hosting.
Triển khai monorepo bằng bảng điều khiển Firebase
Tính năng hỗ trợ monorepo được tích hợp vào quy trình thiết lập phần phụ trợ đồ hoạ trong bảng điều khiển Firebase. Khi được nhắc nhập "Thư mục gốc" trong phần "Cài đặt triển khai", hãy chỉ định đường dẫn đến ứng dụng mà bạn muốn triển khai bên trong monorepo:

Triển khai monorepo bằng CLI Firebase
Tính năng hỗ trợ monorepo được tích hợp vào quy trình thiết lập phần phụ trợ do lệnh CLI Firebase apphosting:backends:create gọi. Sau khi bạn nhập quy trình này và chỉ định kho lưu trữ GitHub đã chọn, bạn sẽ được nhắc chỉ định thư mục gốc của ứng dụng liên quan đến kho lưu trữ; tại lời nhắc này, hãy chuyển đường dẫn đến ứng dụng bạn muốn triển khai bên trong monorepo:
$ 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
Ví dụ: dưới đây là các thành phần sẽ được triển khai dựa trên cấu trúc dự án sau đây và "target-app" là ứng dụng bạn muốn tạo và triển khai:
Nx
.
├── libs
├── apps
│ └── target-app
│ ├── project.json
│ └── src
│ └── ...
├── nx.json
├── package-lock.json
└── package.json
Turborepo
.
├── packages
├── apps
│ └── target-app
│ ├── package.json
│ └── src
│ └── ...
├── turbo.json
├── package.json
└── package-lock.json
Thư mục gốc của ứng dụng liên quan đến kho lưu trữ của bạn là apps/target-app.
Khắc phục sự cố khi triển khai monorepo
- Nếu bạn không chỉ định trường "thư mục gốc" cho Nx, thì bản dựng sẽ không thành công và hiển thị thông báo rằng App Hosting không tìm thấy dự án để nhắm mục tiêu bên trong monorepo Nx. Tương tự, người dùng Turborepo phải chỉ định thư mục ứng dụng mục tiêu vì không có khái niệm về dự án mặc định trong Turborepo.
- Đối với các ứng dụng Nx + Angular, bạn phải sử dụng hệ thống xây dựng ứng dụng Angular để xây dựng ứng dụng. Trình tạo ứng dụng Angular được chỉ định trong
project.json.