TypeScript के साथ मोनोरिपॉजिटरी: शुरुआती लोगों के लिए कोड संगठन

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

TypeScript के साथ मोनोरिपॉजिटरी: शुरुआती लोगों के लिए कोड संगठन

\n\n

TypeScript में आधुनिक एप्लिकेशन विकसित करने के लिए अक्सर कई परस्पर जुड़े पैकेजों (जैसे, कंपोनेंट लाइब्रेरी, बैकएंड सेवा और उपयोगिताएँ) के प्रबंधन की आवश्यकता होती है। प्रत्येक पैकेज को एक अलग रिपॉजिटरी (मल्टीरिपॉजिटरी) में संग्रहीत करने के बजाय, कई टीमें मोनोरिपॉजिटरी चुनती हैं — एक एकल रिपॉजिटरी जिसमें सभी प्रोजेक्ट शामिल होते हैं। इस लेख में, हम समझेंगे कि TypeScript के साथ मोनोरिपॉजिटरी कैसे व्यवस्थित करें, भले ही आप शुरुआती हों।

\n\n

मोनोरिपॉजिटरी क्या है और इसकी आवश्यकता क्यों है?

\n\n

मोनोरिपॉजिटरी (monorepo) एक दृष्टिकोण है जिसमें कई प्रोजेक्ट्स (पैकेज, मॉड्यूल) का कोड एक ही रिपॉजिटरी में संग्रहीत किया जाता है। इसका मतलब यह नहीं है कि सभी प्रोजेक्ट एक साथ मिल जाते हैं: वे तार्किक रूप से अलग रहते हैं, लेकिन एक ही छत के नीचे होते हैं।

\n\n

TypeScript प्रोजेक्ट्स के लिए लाभ:

\n
    \n
  • निर्भरताओं का एकीकृत संस्करण। आप उस स्थिति से बचते हैं जहाँ विभिन्न पैकेजों में TypeScript या एक ही लाइब्रेरी के विभिन्न संस्करणों का उपयोग किया जाता है।
  • \n
  • सरल रिफैक्टरिंग। एक स्थान पर सामान्य इंटरफ़ेस या प्रकार बदलने से सभी आश्रित पैकेजों में तुरंत अपडेट हो जाता है।
  • \n
  • सरलीकृत प्रकाशन। मोनोरिपॉजिटरी के लिए उपकरण (जैसे, Lerna या Nx) केवल बदले गए पैकेजों को स्वचालित रूप से प्रकाशित करने में मदद करते हैं।
  • \n
  • साझा सेटिंग्स। आपके पास सभी पैकेजों के लिए एक tsconfig.json हो सकता है, जिसे आवश्यकतानुसार ओवरराइड किया जा सकता है।
  • \n
\n\n

मोनोरिपॉजिटरी बनाने के लिए उपकरण

\n\n

TypeScript में मोनोरिपॉजिटरी के साथ काम करने के लिए कई लोकप्रिय उपकरण हैं:

\n
    \n
  • npm Workspaces — npm की अंतर्निहित सुविधा, संस्करण 7 से शुरू। सरल और प्रभावी।
  • \n
  • Yarn Workspaces — पैकेज मैनेजर Yarn में समान कार्यक्षमता।
  • \n
  • Lerna — क्लासिक उपकरण, जो अक्सर npm या Yarn Workspaces के ऊपर उपयोग किया जाता है।
  • \n
  • Nx — उन्नत कैशिंग और कोड जनरेशन क्षमताओं वाली मोनोरिपॉजिटरी के लिए शक्तिशाली प्रणाली।
  • \n
  • Turborepo — Vercel का आधुनिक उपकरण, जो गति और सरलता पर केंद्रित है।
  • \n
\n\n

इस मार्गदर्शिका में, हम npm Workspaces का उपयोग करेंगे, क्योंकि यह सबसे सरल तरीका है जिसमें अतिरिक्त वैश्विक उपकरण स्थापित करने की आवश्यकता नहीं है।

\n\n

TypeScript के साथ मोनोरिपॉजिटरी की चरण-दर-चरण सेटअप

\n\n

1. मूल संरचना बनाना

\n\n

अपने मोनोरिपॉजिटरी के मूल फ़ोल्डर को बनाकर और package.json को आरंभ करके शुरू करें:

\n\n
mkdir my-monorepo\ncd my-monorepo\nnpm init -y
\n\n

अब मूल package.json को संपादित करें, workspaces फ़ील्ड जोड़ें। यह npm को बताएगा कि आपके पैकेज कहाँ खोजने हैं:

\n\n
{\n  "name": "my-monorepo",\n  "private": true,\n  "workspaces": [\n    "packages/*"\n  ]\n}
\n\n

"private": true फ़्लैग npm में मूल पैकेज के आकस्मिक प्रकाशन को रोकता है।

\n\n

2. पैकेज बनाना

\n\n

अपने पैकेजों के लिए फ़ोल्डर संरचना बनाएँ। एक विशिष्ट संरचना इस प्रकार दिखती है:

\n\n
my-monorepo/\n├── packages/\n│   ├── utils/          # सामान्य उपयोगिताएँ\n│   ├── ui/             # कंपोनेंट लाइब्रेरी\n│   └── backend/        # सर्वर एप्लिकेशन\n├── package.json\n└── tsconfig.json
\n\n

packages फ़ोल्डर बनाएँ और उसके अंदर प्रत्येक पैकेज के लिए फ़ोल्डर बनाएँ। प्रत्येक पैकेज का अपना package.json होना चाहिए। उदाहरण के लिए, utils पैकेज के लिए:

\n\n
mkdir -p packages/utils\ncd packages/utils\nnpm init -y
\n\n

packages/utils/package.json को संपादित करें, नाम और संभवतः संस्करण जोड़ें:

\n\n
{\n  "name": "@my-project/utils",\n  "version": "1.0.0",\n  "main": "dist/index.js",\n  "types": "dist/index.                

ब्लॉग

पुस्तक अनुशंसाएँ