मोनोरेपो की मदद से, एक ही डायरेक्ट्री में कई प्रोजेक्ट व्यवस्थित और मैनेज किए जा सकते हैं. इस गाइड में, App Hosting की मदद से Nx पर आधारित ऐप्लिकेशन डिप्लॉय करने का तरीका बताया गया है.
Firebase CLI की मदद से, मोनोरेपो डिप्लॉय करना
मोनोरेपो के लिए सहायता, बैकएंड सेटअप फ़्लो में पहले से मौजूद होती है. इसे Firebase CLI कमांड 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 ऐप्लिकेशन बिल्डर का इस्तेमाल करना होगा.
project.json
में, Angular ऐप्लिकेशन बिल्डर के बारे में बताया गया है