एज़्योर पाइपलाइन – ‘एनपीएम इंस्टाल’ कमांड से कोणीय बिल्ड में ‘पहले से स्थापित’ पैकेज को बाहर करें


के लिए जारी करें – एक कोणीय परियोजना के लिए Azure बिल्ड पाइपलाइन।
जब भी कोणीय प्रोजेक्ट नए पुल अनुरोध के साथ बनता है तो मुझे एनपीएम इंस्टाल कार्य चलाना पड़ता है।

परिदृश्य – मैंने अपने प्रोजेक्ट की आवश्यकता के लिए 2 पैकेज अनुकूलित किए हैं। मैं हर बार npm इंस्टाल कमांड होने पर इन पैकेजों को ओवरराइड नहीं करना चाहता। एक बार जब इसे मैन्युअल रूप से ओवरराइड कर दिया जाए तो इसे छुआ नहीं जाना चाहिए।

क्या package.json स्थापित होने के बाद किसी विशेष पैकेज को अनदेखा करने का कोई तरीका है?
दूसरे शब्दों में, क्या एनपीएम पैकेज को केवल तभी स्थापित करना संभव है जब यह पहले से इंस्टॉल न किया गया हो?
विशेषज्ञों से कुछ दिशा-निर्देश मांग रहा हूं 🙂

मैंने क्या प्रयास किया है:

1. इन पैकेजों को package.json फ़ाइल से बाहर निकालें

इस समाधान के साथ समस्या – यदि मुझे अपना एप्लिकेशन नए सिस्टम पर तैनात करना है, तो वे पैकेज कभी भी इंस्टॉल नहीं होंगे।

2. मैंने इन पैकेजों को एक अलग फ़ोल्डर में जोड़ा और वहां से पैकेजों को संदर्भित करने का प्रयास किया। यह अपेक्षा के अनुरूप काम नहीं कर रहा है.

समाधान 2

आप निम्नलिखित प्रयास कर सकते हैं;

npm-shlinkwrap.json का उपयोग करना

1. पैकेजों को अनुकूलित और स्थापित करें: प्रारंभ में आवश्यकतानुसार अपने पैकेजों को स्थापित और अनुकूलित करें।
2. npm-shlinkwrap.json जेनरेट करें: अपने प्रोजेक्ट डायरेक्टरी में npm श्रिंकवैप चलाएं। यह कमांड एक npm-shlinkwrap.json फ़ाइल बनाता है जो सभी स्थापित पैकेजों के संस्करणों और उनकी निर्भरता को लॉक कर देता है।
3. npm-shlinkwrap.json संपादित करें: npm-shlinkwrap.json में, आप अपने विशिष्ट संस्करणों या स्थानीय प्रतियों को इंगित करने के लिए अपने अनुकूलित पैकेजों के लिए प्रविष्टियों को मैन्युअल रूप से संपादित कर सकते हैं। इस तरह, जब भी npm install चलता है, तो यह npm-shlinkwrap.json में निर्दिष्ट संस्करणों और स्रोतों का सम्मान करता है, किसी भी अपडेट या परिवर्तन को अनदेखा करता है जो सामान्य रूप से npm रजिस्ट्री से प्राप्त किया जाएगा।

यदि वह काम नहीं करता है, तो स्थानीय पथों के साथ प्रयास करें:

स्थानीय पथों के साथ package-lock.json का लाभ उठाना

1. स्थानीय रूप से कस्टम पैकेज स्थापित करें: अपने अनुकूलित पैकेजों को अपने प्रोजेक्ट के भीतर एक ज्ञात निर्देशिका में या अपने प्रोजेक्ट के लिए सुलभ स्थान पर रखें।
2. package.json को संशोधित करें: इन स्थानीय पैकेजों को संस्करण संख्याओं के बजाय उनके पथ निर्दिष्ट करके अपने package.json में संदर्भित करें।

JSON
"dependencies": {
  "custom-package": "file:./path/to/custom-package",
}

3.कमिट पैकेज-लॉक.जेसन: एनपीएम इंस्टाल चलाने के बाद, सुनिश्चित करें कि आपका पैकेज-लॉक.जेसन अपडेट हो गया है और इस फाइल को अपने रिपॉजिटरी में सबमिट करें। पैकेज-लॉक.जेसन यह सुनिश्चित करता है कि आपके नोड_मॉड्यूल निर्देशिका की सटीक संरचना स्थानीय पैकेजों के उपयोग सहित भविष्य के इंस्टॉलेशन पर दोहराई जाती है।

मैं पहले मेथोड का उपयोग करने की सलाह दूंगा, यदि वह काम नहीं करता है तो आप जा सकते हैं और पैकेजों को ओवरराइड कर सकते हैं।

ओवरराइडिंग पैकेज स्थानों के लिए .npmrc का उपयोग करना

.npmrc कॉन्फ़िगर करें: आप विशिष्ट पैकेजों के स्रोत स्थान को ओवरराइड करने के लिए .npmrc फ़ाइल का उपयोग कर सकते हैं। यह थोड़ा अधिक उन्नत है और आमतौर पर विभिन्न रजिस्ट्रियों के बीच स्विच करने के लिए उपयोग किया जाता है, लेकिन आप अपने पैकेज के लिए स्थानीय पथ या कस्टम यूआरएल निर्दिष्ट कर सकते हैं।

हालाँकि, इस दृष्टिकोण के लिए आवश्यक है कि आपके पैकेज संरचित हों और एनपीएम रजिस्ट्रियों पर होस्ट किए गए पैकेजों के समान तरीके से स्थापित किए जा सकें, जिसमें आपके कस्टम पैकेजों के लिए अतिरिक्त सेटअप शामिल हो सकता है।

コメント

タイトルとURLをコピーしました