เมื่อใช้ Monorepo คุณจะจัดระเบียบและจัดการหลายโปรเจ็กต์ในไดเรกทอรีเดียวได้ คู่มือนี้อธิบายวิธีเริ่มต้นใช้งานการทำให้แอปที่ใช้ Turborepo หรือ Nx ใช้งานได้ด้วย App Hosting
ทำให้ Monorepo ใช้งานได้ด้วย Firebase Console
ระบบได้สร้างการรองรับ Monorepo ไว้ในขั้นตอนการตั้งค่าแบ็กเอนด์แบบกราฟิกใน Firebase Console เมื่อระบบแจ้งให้ระบุ "ไดเรกทอรีราก" ในส่วน "การตั้งค่าการทำให้ใช้งานได้" ให้ระบุเส้นทางไปยังแอปพลิเคชันที่ต้องการทำให้ใช้งานได้ภายใน Monorepo ดังนี้

ทำให้ Monorepo ใช้งานได้ด้วย Firebase CLI
ระบบได้สร้างการรองรับ Monorepo ไว้ในขั้นตอนการตั้งค่าแบ็กเอนด์ที่เรียกใช้โดยคำสั่ง CLI
Firebaseapphosting:backends:create หลังจากเข้าสู่ขั้นตอนการตั้งค่านี้และระบุที่เก็บ GitHub ที่เลือกแล้ว ระบบจะแจ้งให้คุณระบุไดเรกทอรีรากของแอปเทียบกับที่เก็บ โดยในขั้นตอนนี้ ให้ส่งเส้นทางไปยังแอปพลิเคชันที่ต้องการทำให้ใช้งานได้ภายใน 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
ตัวอย่างเช่น ชิ้นงานที่จะทำให้ใช้งานได้เมื่อกำหนดโครงสร้างโปรเจ็กต์ต่อไปนี้และ "target-app" เป็นแอปพลิเคชันที่ต้องการสร้างและทำให้ใช้งานได้
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
ไดเรกทอรีรากของแอปเทียบกับที่เก็บคือ apps/target-app
การแก้ปัญหาการทำให้ Monorepo ใช้งานได้
- หากไม่ระบุช่อง "ไดเรกทอรีราก" สำหรับ Nx การสร้างจะ ล้มเหลวและแสดงข้อความว่า App Hosting ไม่พบโปรเจ็กต์ที่จะกำหนดเป้าหมายภายใน Nx Monorepo ในทำนองเดียวกัน ผู้ใช้ Turborepo ต้องระบุไดเรกทอรีแอปเป้าหมายเนื่องจากไม่มีแนวคิดเรื่องโปรเจ็กต์เริ่มต้นใน Turborepo
- สำหรับแอปพลิเคชัน Nx + Angular คุณต้องใช้เครื่องมือสร้างแอปพลิเคชัน Angular
builder เพื่อสร้างแอปพลิเคชัน เครื่องมือสร้างแอปพลิเคชัน Angular จะระบุไว้ใน
project.json