Sử dụng monorepos với tính năng Lưu trữ ứng dụng

Với kho lưu trữ đơn, bạn có thể sắp xếp và quản lý nhiều dự án trong một thư mục. 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 Nx bằng App Hosting.

Triển khai kho lưu trữ đơn bằng Firebase CLI

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 nhập quy trình này và chỉ định kho lưu trữ GitHub mà mình đã chọn, bạn sẽ được nhắc chỉ định thư mục gốc của ứng dụng so với kho lưu trữ. Trong 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 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

Ví dụ: sau đây là các thành phần sẽ được triển khai dựa trên cấu trúc dự án Nx sau đây và "target-app" là ứng dụng bạn muốn tạo và triển khai:

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

Thư mục gốc của ứng dụng so với kho lưu trữ là apps/target-app.

Triển khai kho lưu trữ đơn 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 về "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:

Ảnh chụp màn hình chế độ xem tạo phần phụ trợ của bảng điều khiển

Khắc phục sự cố khi triển khai monorepo

  • Nếu bạn để trống trường "thư mục gốc" trong quá trình thiết lập phần phụ trợ, thì dịch vụ Lưu trữ ứng dụng vẫn có thể tạo và triển khai dự án mục tiêu của người dùng nếu dự án đó được chỉ định trong defaultProject của tệp cấu hình nx.json có liên quan.
  • Nếu bạn không chỉ định trường "thư mục gốc" hoặc defaultProject, thì bản dựng sẽ không thành công và hiển thị thông báo App Hosting không tìm thấy dự án để nhắm mục tiêu bên trong monorepo Nx.
  • Đố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