यार्न का उपयोग करके मोनोरेपो में पैकेज की स्थापना से कैसे बचें


10

मैं एक monorepo का उपयोग करके बनाया Lerna और यार्न कार्यस्थानों

सब कुछ ठीक काम करता है लेकिन हर बार मैं एक पैकेज पर एक नई निर्भरता स्थापित करता हूं (चलो उसे कहते हैं ) का उपयोग कर:

yarn add <package_name>

यार्न इसे जोड़ता है और फिर installमोनोरेपो में सभी पैकेजों की स्क्रिप्ट को ट्रिगर करता है , यहां तक ​​कि उन पैकेजों पर भी जो पर भरोसा नहीं करता है।

यह वहाँ से बचने के लिए वैसे भी है? बिना किसी कारण के उन्हें स्थापित करने में कुछ समय लगता है।


तो आपने Lerna और Yarn दोनों पैकेजों का उपयोग किया है? सिर्फ लर्न ही क्यों नहीं? इसके अलावा, क्या आपने लर्न के साथ पैकेज को जोड़ने और एक स्कोप सेट करने की कोशिश की है? github.com/lerna/lerna/tree/master/commands/add
kbariotis

मैं आसानी से निर्भरता का प्रबंधन करने के लिए अपने पैकेज और यार्न कार्यस्थानों को प्रकाशित और संस्करण करने के लिए लर्न का उपयोग करता हूं। मैंने आपके सुझाव की कोशिश की और यह काम नहीं किया। प्रयास करने के लिए धन्यवाद :)
२०:२५

जवाबों:


4

इसके साथ विशिष्ट कार्यक्षेत्र में जोड़ने का प्रयास करें: -

yarn workspace <workspace_name> add <package_name>

कुछ डॉक्स के लिए यहां देखें


मैं पूरे कार्यक्षेत्र पर निर्भरता स्थापित नहीं करना चाहता, लेकिन केवल एक पैकेज में
इरेज़ेल

4

आप के साथ यार्न 2 की कोशिश कर सकते nodeLinker: node-modulesमें .yarnrc.yml। यार्न 2 केवल उन पैकेजों पर पुनर्निर्माण को ट्रिगर करने की गारंटी देता है जिनकी निर्भरताएं बदल गई हैं, यह कुछ ऐसी चीज है जो यार्न 1 द्वारा गारंटी नहीं दी गई थी। हालांकि अभी भी एक बहुत ही दुर्लभ मामला होगा जब प्रतीत होता है कि असंबंधित पैकेजों को नए पैकेज में जोड़कर अलग तरीके से फहराया जाता है। , लेकिन यह बहुत कम ही होगा।


मैंने आपके सुझाव की कोशिश की लेकिन ऐसा प्रतीत होता है कि दुर्भाग्य से परिणाम अभी भी वही है ...: /
Erazihel

4

स्कोप का उपयोग करके पैकेज को विशेष मॉड्यूल में जोड़ा जाता है।

lerna add some_package_1 --scope=some_module_x

अधिक: https://github.com/lerna/lerna/tree/master/commands/add#readme


कि मेरे प्रश्न में टिप्पणी में क्या सुझाव दिया @kbariotis। मैंने कोशिश की और परिणाम अभी भी वही है।
इरजिहेल

क्या आप किसी पैकेज को अपडेट कर सकते हैं।
Json

मैंने किया था और एक बार फिर से परिणाम अभी भी वही है
इरेज़ेल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.