मोनोरिपो की मदद से, एक ही डायरेक्ट्री में कई प्रोजेक्ट व्यवस्थित और मैनेज किए जा सकते हैं. इस गाइड में, 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 ऐप्लिकेशन
बिल्डर का इस्तेमाल करना होगा.
project.jsonमें, Angular ऐप्लिकेशन बिल्डर की जानकारी दी गई है