Với kho lưu trữ đơn nhất, 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 kho lưu trữ đơn nhất bằng bảng điều khiển Firebase
Tính năng hỗ trợ monorepo (một kho duy nhất) đượ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 kho lưu trữ đơn nhất:

Triển khai kho lưu trữ đơn nhất bằng Firebase CLI
Tính năng hỗ trợ kho lưu trữ đơn nhất đượ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 tương ứng với kho lưu trữ; tại lời nhắc này, hãy chuyển đường dẫn đến ứng dụng mà bạn muốn triển khai bên trong kho lưu trữ đơn nhất:
$ 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ụ: sau đây là các thành phần sẽ được triển khai theo cấu trúc dự án sau và "target-app" là ứng dụng mà bạn muốn xây dựng 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 tương ứng với kho lưu trữ là apps/target-app.
Khắc phục sự cố khi triển khai monorepo (một kho duy nhất)
- 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 đến bên trong kho lưu trữ đơn nhất Nx. Tương tự, người dùng Turborepo phải chỉ định thư mục ứng dụng đích 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 trình tạo ứng dụng Angular để tạo ứng dụng. Trình tạo ứng dụng Angular được chỉ định trong
project.json