मोनो रिपॉज़िटरी की मदद से, एक ही डायरेक्ट्री में कई प्रोजेक्ट व्यवस्थित और मैनेज किए जा सकते हैं. इस गाइड में, App Hosting की मदद से Turborepo या Nx पर आधारित ऐप्लिकेशन डिप्लॉय करने का तरीका बताया गया है.
Firebase कंसोल की मदद से मोनो रिपॉज़िटरी डिप्लॉय करना
Firebase कंसोल में, मोनो रिपॉज़िटरी की सुविधा को ग्राफ़िकल बैकएंड सेटअप फ़्लो में शामिल किया गया है. "डिप्लॉयमेंट सेटिंग" में "रूट डायरेक्ट्री" के लिए पूछे जाने पर, मोनो रिपॉज़िटरी में उस ऐप्लिकेशन का पाथ डालें जिसे आपको डिप्लॉय करना है:

Firebase सीएलआई की मदद से मोनो रिपॉज़िटरी डिप्लॉय करना
मोनो रिपॉज़िटरी की सुविधा, बैकएंड सेटअप फ़्लो में पहले से मौजूद होती है. इसे Firebase सीएलआई कमांड apphosting:backends:create से चालू किया जाता है. इस फ़्लो में जाने और GitHub की चुनी गई रिपॉज़िटरी की जानकारी देने के बाद, आपसे अपनी रिपॉज़िटरी के हिसाब से ऐप्लिकेशन की रूट डायरेक्ट्री की जानकारी देने के लिए कहा जाता है. इस प्रॉम्प्ट पर, उस ऐप्लिकेशन का पाथ दें जिसे आपको मोनो रिपॉज़िटरी में डिप्लॉय करना है:
$ 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 है.
मोनो रिपॉज़िटरी डिप्लॉयमेंट से जुड़ी समस्या हल करना
- अगर Nx के लिए "रूट डायरेक्ट्री" फ़ील्ड की जानकारी नहीं दी जाती है, तो बिल्ड नहीं बन पाएगा. साथ ही, आपको एक मैसेज दिखेगा कि App Hosting को Nx मोनो रिपॉज़िटरी में टारगेट करने के लिए कोई प्रोजेक्ट नहीं मिला. इसी तरह, Turborepo के उपयोगकर्ताओं को टारगेट ऐप्लिकेशन डायरेक्ट्री की जानकारी देनी होगी, क्योंकि Turborepo में डिफ़ॉल्ट प्रोजेक्ट का कोई कॉन्सेप्ट नहीं है.
- Nx + Angular ऐप्लिकेशन के लिए, आपको ऐप्लिकेशन बनाने के लिए Angular ऐप्लिकेशन बिल्ड सिस्टम का इस्तेमाल करना होगा. Angular ऐप्लिकेशन बिल्डर के बारे में
project.jsonमें बताया गया है.