ऐप्लिकेशन होस्टिंग के साथ मोनो रिपॉज़िटरी का इस्तेमाल करें

मोनोरिपो की मदद से, एक ही डायरेक्ट्री में कई प्रोजेक्ट व्यवस्थित और मैनेज किए जा सकते हैं. इस गाइड में, App Hosting की मदद से Nx-आधारित ऐप्लिकेशन डिप्लॉय करने का तरीका बताया गया है.

Firebase कंसोल की मदद से, मोनोरिपो डिप्लॉय करना

Firebase कंसोल में, ग्राफ़िकल बैकएंड सेटअप फ़्लो में Monorepo का इस्तेमाल किया जा सकता है. "डिप्लॉयमेंट सेटिंग" में "रूट डायरेक्ट्री" के लिए प्रॉम्प्ट मिलने पर, उस ऐप्लिकेशन का पाथ डालें जिसे आपको मोनोरिपो में डिप्लॉय करना है:

कंसोल के बैकएंड में क्रिएशन व्यू का स्क्रीनशॉट

Firebase CLI की मदद से, मोनोरिपो डिप्लॉय करना

मोनोरिपो की सुविधा, बैकएंड सेटअप के फ़्लो में पहले से मौजूद होती है. इसे Firebase CLI कमांड 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

उदाहरण के लिए, यहां उन ऐसेट के बारे में बताया गया है जिन्हें Nx प्रोजेक्ट के इस स्ट्रक्चर के हिसाब से डिप्लॉय किया जाएगा. साथ ही, "target-app" को उस ऐप्लिकेशन के तौर पर डिप्लॉय किया जाएगा जिसे आपको बनाना है:

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

आपके रिपॉज़िटरी के हिसाब से, ऐप्लिकेशन की रूट डायरेक्ट्री apps/target-app है.

मोनोरिपो डिप्लॉयमेंट से जुड़ी समस्या हल करना

  • अगर बैकएंड सेटअप के दौरान "रूट डायरेक्ट्री" फ़ील्ड को खाली छोड़ दिया जाता है, तो App Hosting अब भी उपयोगकर्ता के टारगेट प्रोजेक्ट को बना और डिप्लॉय कर सकता है. ऐसा तब होगा, जब इसे nx.json कॉन्फ़िगरेशन फ़ाइल के defaultProject में बताया गया हो.
  • अगर आपने "रूट डायरेक्ट्री" फ़ील्ड या defaultProject में से किसी को भी नहीं चुना है, तो बिल्ड नहीं हो पाएगा. साथ ही, यह मैसेज दिखेगा कि defaultProject को Nx मोनोरिपो में टारगेट करने के लिए कोई प्रोजेक्ट नहीं मिल रहा है.App Hosting
  • Nx + Angular ऐप्लिकेशन के लिए, ऐप्लिकेशन बनाने के लिए Angular ऐप्लिकेशन बिल्डर का इस्तेमाल करना ज़रूरी है. Angular ऐप्लिकेशन बिल्डर को project.json में बताया गया है