ब्लॉग पोस्ट श्रृंखला "लेजर लाइव मोनोरेपो प्रोजेक्ट" की दूसरी प्रविष्टि, जहां एक लेजर डेवलपर हमें मोनो रिपॉजिटरी में लेजर लाइव कोडबेस के विशाल माइग्रेशन की कहानी बताता है। यदि आप भाग 1 भूल गए हैं, तो इसे यहां देखें:
यह स्थापित करने के बाद कि मोनोरेपो आर्किटेक्चर एक व्यवहार्य समाधान था, हमने अपनी योजना को लागू करने के लिए उपलब्ध उपकरणों पर गौर करना शुरू किया।
अनेक परियोजनाओं को संभालना
लेजर लाइव टीम में हम जावास्क्रिप्ट पारिस्थितिकी तंत्र में नेविगेट करते हैं, और सौभाग्य से, हम पहले से ही अपने पैकेज मैनेजर के साथ कई परियोजनाओं को संभालने के कई तरीकों के बारे में जानते थे। उनमें से कुछ संभावित समाधानों में शामिल हैं:
- NPM (कार्यस्थानों के लिए समर्थन है लेकिन बेहतर विकल्प हैं),
- सूत 1 (बहुत पुराना, बेहतर और अधिक कुशल विकल्प बनना),
- सूत ≥ 2 (दिलचस्प विचार है, लेकिन प्लग एन प्ले हर जगह अच्छी तरह से समर्थित नहीं है, खासकर रिएक्ट नेटिव के साथ),
- पीएनपीएम (सिम्लिंक, कार्यस्थानों को ध्यान में रखकर निर्मित, डिस्क कुशल)।
ये सब देखने के बाद हमने साथ चलने का फैसला किया पीएनपीएम के लिए:
- डिस्क दक्षता (यह वर्चुअल का उपयोग करता है की दुकान और सिमलिंक, इसलिए पैकेज केवल एक बार डाउनलोड किए जाते हैं और फिर वर्चुअल स्टोर से आपके नोड_मॉड्यूल से जुड़े होते हैं),
- गति (चूंकि पैकेज कैश्ड हैं, बाद की स्थापनाएँ बहुत तेज़ हैं),
- कार्यस्थानों/मोनोरेपो आर्किटेक्चर (उपनाम, ऑर्केस्ट्रेशन इत्यादि…) के लिए समर्थन में निर्मित।
कागजों पर पीएनपीएम एक पूर्ण रत्न है, लेकिन सही ढंग से सेटअप करने के लिए सिम्लिंक थोड़ा अजीब था (फिर से, विशेष रूप से रिएक्ट नेटिव के साथ)।
ठीक है, तो हमारी पसंद बन गई, हम साथ चलेंगे पीएनपीएम.
स्क्रिप्ट आर्केस्ट्रा
यद्यपि पीएनपीएम इसकी विशेषताओं में अधिक से अधिक ऑर्केस्ट्रेशन जोड़ता है, फिर भी इसमें वह सब कुछ शामिल नहीं है जो हम करना चाहते थे, जैसे:
- अनुक्रमिक निर्माण,
- कैशिंग
इनके लिए, हमें दो दिलचस्प दावेदार मिले जिन पर हमें एक नज़र डालने की ज़रूरत थी:
- NX (कोणीय टीम द्वारा),
- टर्बोरेपो (जिसने अभी-अभी v1.0.0 की घोषणा की थी जब हमने इस पर काम करना शुरू किया था, और अब वर्सेल टीम के साथ काम कर रहे हैं)।
हमने दोनों पर अवधारणा का प्रमाण दिया।
NX इसमें बहुत अधिक सुविधाएँ, जनरेटर, स्वचालन, महान निर्भरता ग्राफ़ इत्यादि थे... लेकिन, इसमें बहुत अधिक ओवरहेड जोड़ा गया था, और चूंकि यह काफी मनमौजी है, इसलिए हमें उनके सम्मेलनों का पालन करना होगा।
टर्बोरेपो दूसरी ओर, फीचर के लिहाज से यह काफी बुनियादी है। फिर भी यह एक सुविधाजनक प्लग एंड प्ले समाधान है जिसे जरूरत पड़ने पर हम बहुत जल्दी बदल सकते हैं।
यद्यपि टर्बोरेपो की तुलना में कम सुविधाएँ थीं NX, इसने वे 2 चीज़ें कीं जिनकी हम तलाश कर रहे थे:
- निर्भरता वृक्ष (और समवर्ती बिल्ड) का सम्मान करते हुए बिल्ड का ऑर्केस्ट्रेशन,
- कैशिंग (यदि उनका कोड नहीं बदला है तो बिल्ड को कैश किया जाता है और 'रीप्ले' किया जाता है)।
इसके अलावा, आसान ड्रॉप-इन/ड्रॉप-आउट ने हमें ब्लॉक पर नए बच्चे को चुनने के लिए प्रेरित किया, टर्बोरेपो.
संस्करण
हमने कई समाधानों पर भी गौर किया, लेकिन अंततः उपयोग करने का निर्णय लिया https://github.com/changesets/changesets चूँकि यह TurboRepo द्वारा अनुशंसित एक उपकरण था, और दस्तावेज़ीकरण को थोड़ा पढ़ने के बाद, यह हमारी आवश्यकताओं का अनुपालन करता प्रतीत हुआ।
डेवलपर्स को अपने विकास प्रवाह और आपूर्ति में थोड़ा और अधिक कठोर होने की आवश्यकता होगी changesets
(फ़ाइल यह बताती है कि किस लाइब्रेरी में उनका कोड बदलता है, गंभीरता निम्नलिखित है सेवर सम्मेलन, और परिवर्तन का विवरण)। इन changesets
फिर दी गई गंभीरताओं का सम्मान करते हुए पैकेजों के संस्करण को स्वचालित रूप से टक्कर देने के साथ-साथ पीढ़ी को स्वचालित करने के लिए उपयोग किया जाता है बदलाव. उसके शीर्ष पर, उपकरण इसकी अनुमति देता है pre release
मोड, 🍒 पर 🍰।
आगे क्या होगा ?
उपकरणों पर निर्णय लेने के बाद, काम शुरू करने का समय आ गया। अगले ब्लॉग लेख में, हम मोनो रिपॉजिटरी के संदर्भ में बिल्ड सिस्टम और सभी डेव-ऑप्स/ऑटोमेशन/निरंतर एकीकरण के बारे में बात करेंगे।
वैलेन्टिन डी अल्मेडा
डेवलपर अनुभव और कोर टेक - लेजर लाइव
- एसईओ संचालित सामग्री और पीआर वितरण। आज ही प्रवर्धित हो जाओ।
- प्लेटोडेटा.नेटवर्क वर्टिकल जेनरेटिव एआई। स्वयं को शक्तिवान बनाएं। यहां पहुंचें।
- प्लेटोआईस्ट्रीम। Web3 इंटेलिजेंस। ज्ञान प्रवर्धित। यहां पहुंचें।
- प्लेटोईएसजी. कार्बन, क्लीनटेक, ऊर्जा, पर्यावरण, सौर, कचरा प्रबंधन। यहां पहुंचें।
- प्लेटोहेल्थ। बायोटेक और क्लिनिकल परीक्षण इंटेलिजेंस। यहां पहुंचें।
- स्रोत: https://www.ledger.com/blog/ledger-live-monorepo-project-part-2-the-tools-make-it-shine
- :हैस
- :है
- :नहीं
- :कहाँ
- 1
- a
- About
- पूर्ण
- जोड़ा
- जोड़ता है
- बाद
- फिर
- सब
- की अनुमति देता है
- पहले ही
- विकल्प
- an
- और
- कोणीय
- की घोषणा
- स्थापत्य
- हैं
- लेख
- AS
- At
- को स्वचालित रूप से
- स्वतः
- स्वचालन
- उपलब्ध
- बुनियादी
- BE
- बनने
- बेहतर
- बिट
- खंड
- ब्लॉग
- वेबदैनिकी डाक
- के छात्रों
- निर्माण
- बनाता है
- बनाया गया
- लेकिन
- by
- परिवर्तन
- बदल
- परिवर्तन
- चेक
- चुनाव
- चुनें
- कोड
- codebase
- आता है
- पालन करना
- संकल्पना
- समवर्ती
- प्रसंग
- निरंतर
- सुविधाजनक
- सम्मेलन
- कन्वेंशनों
- मूल
- ठीक प्रकार से
- सका
- आवरण
- का फैसला किया
- निर्णय लेने से
- निर्भरता
- का वर्णन
- विवरण
- देव
- डेवलपर
- डीआईडी
- do
- दस्तावेज़ीकरण
- नहीं करता है
- बूंद
- आसान
- पारिस्थितिकी तंत्र
- दक्षता
- कुशल
- प्रविष्टि
- विशेष रूप से
- स्थापना
- ईथर (ईटीएच)
- कभी
- सब कुछ
- हर जगह
- अनुभव
- और तेज
- Feature
- विशेषताएं
- पट्टिका
- प्रवाह
- का पालन करें
- निम्नलिखित
- के लिए
- भाग्यवश
- पाया
- से
- मणि
- पीढ़ी
- जनरेटर
- दी
- Go
- रेखांकन
- महान
- था
- हाथ
- संभालना
- है
- यहाँ उत्पन्न करें
- HTTPS
- विशाल
- विचार
- if
- in
- शामिल
- एकीकरण
- दिलचस्प
- में
- IT
- आईटी इस
- जावास्क्रिप्ट
- केवल
- बच्चा
- खाता
- लेजर लाइव
- कम
- पुस्तकालय
- जीना
- देखिए
- देखा
- देख
- लॉट
- बनाया गया
- बनाना
- प्रबंधक
- अधिकतम-चौड़ाई
- प्रवास
- मन
- चुक गया
- मोड
- अधिक
- अधिक कुशल
- बहुत
- विभिन्न
- देशी
- नेविगेट करें
- आवश्यकता
- जरूरत
- की जरूरत है
- नया
- अगला
- अभी
- of
- पुराना
- on
- एक बार
- ONE
- केवल
- स्वच्छंद
- आर्केस्ट्रा
- अन्य
- हमारी
- आउट
- पैकेज
- संकुल
- काग़ज़
- भाग
- जगह
- योजना
- प्लेटो
- प्लेटो डेटा इंटेलिजेंस
- प्लेटोडाटा
- प्ले
- प्लग
- प्लग और खेलने
- प्लस
- संभव
- पोस्ट
- सुंदर
- परियोजना
- परियोजनाओं
- प्रमाण
- अवधारणा के सुबूत
- प्रदान करना
- रखना
- जल्दी से
- प्रतिक्रिया
- प्रतिक्रिया देशी
- पढ़ना
- की सिफारिश की
- कोष
- सम्मान
- कठिन
- लग रहा था
- कई
- व्यवस्था
- कई
- तीव्रता
- चमक
- के बाद से
- So
- समाधान
- समाधान ढूंढे
- कुछ
- विशेष रूप से
- गति
- प्रारंभ
- शुरू
- फिर भी
- की दुकान
- कहानी
- आगामी
- ऐसा
- समर्थन
- समर्थित
- प्रणाली
- लेना
- बातचीत
- टीम
- तकनीक
- बताता है
- से
- कि
- RSI
- खंड
- लेकिन हाल ही
- फिर
- इन
- चीज़ें
- उन
- हालांकि?
- पहर
- सेवा मेरे
- भी
- साधन
- उपकरण
- ऊपर का
- पेड़
- दो
- अंत में
- us
- प्रयुक्त
- का उपयोग करता है
- v1
- संस्करण
- बहुत
- व्यवहार्य
- वास्तविक
- जरूरत है
- था
- तरीके
- we
- कुंआ
- थे
- कब
- कौन कौन से
- मर्जी
- वार
- साथ में
- काम कर रहे
- होगा
- अभी तक
- इसलिए आप
- आपका
- जेफिरनेट