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

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

Firebase सीएलआई की मदद से मोनो रिपॉज़िटरी लागू करें

मोनोरेपो सहायता, बैकएंड सेटअप फ़्लो में बनाई गई है. इसे Firebase सीएलआई कमांड apphosting:backends:create से शुरू किया गया है. इस फ़्लो में शामिल होने और अपनी चुनी गई GitHub डेटा संग्रह जगह की जानकारी देने के बाद, आपसे अपनी डेटा संग्रह जगह के हिसाब से अपने ऐप्लिकेशन की रूट डायरेक्ट्री की जानकारी देने के लिए कहा जाएगा. इस प्रॉम्प्ट में, उस ऐप्लिकेशन का पाथ डालें जिसे आपको मोनोरेपो में डिप्लॉय करना है:

$ 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

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

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

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

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

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

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

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

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