मैंने NPM के लिए Azure DevOps Artifacts Feed की स्थापना की है।
मैंने https://docs.microsoft.com/en-us/azure/devops/artifacts/get-started-npm?view=azure-devops&tabs=windows

अगले चरण में, मैं एक विजुअल स्टूडियो प्रोजेक्ट के भीतर "नोड_मॉड्यूल्स" निर्देशिका से पैकेज प्रकाशित करना चाहता था, जिसे इसके पैकेज सार्वजनिक स्रोत से मिले थे।

मैंने सोचा कि अगर मैं अपने कस्टम ".npmrc" और "package.json" फ़ाइल के बगल में "npm publish" चलाता हूं तो यह मेरे सभी पुस्तकालयों को "node_modules" निर्देशिका से प्रकाशित करेगा। इसके बजाय, इसने मेरा विजुअलस्टूडियो प्रोजेक्ट प्रकाशित किया, जो इन पुस्तकालयों का उपयोग करता है। इसने "नोड_मॉड्यूल्स" फ़ोल्डर को शामिल नहीं करने के लिए गिट इग्नोर नियमों का भी पालन किया ...

जिन पैकेजों पर मैं निर्भर हूं, उन्हें प्रकाशित करने का डिफ़ॉल्ट तरीका क्या होगा?
क्या मुझे प्रत्येक पैकेज के लिए इसे मैन्युअल रूप से करने के लिए एक स्क्रिप्ट लिखनी होगी?

प्रीबिल्ड की आवश्यकता वाले पैकेज के साथ मैं क्या करूँ?
एक साधारण स्क्रिप्ट चलाने के बाद कुछ पैकेज विफल हो गए।

स्क्रिप्ट:

for /d %i in (C:\Path\node_modules\*) do ( cd "%i" &  npm publish )

त्रुटि:

…
6 warn prepublish-on-install As of npm@5, `prepublish` scripts are deprecated.
7 warn prepublish-on-install Use `prepare` for build steps and `prepublishOnly` for upload-only.
8 warn prepublish-on-install See the deprecation note in `npm help scripts` for more information.
…
23 error code ELIFECYCLE
24 error errno 1
25 error xml-name-validator@3.0.0 prepublish: `node scripts/generate-grammar.js < lib/grammar.pegjs > lib/generated-parser.js`
25 error Exit status 1
26 error Failed at the xml-name-validator@3.0.0 prepublish script.
…

मैंने देखा कि इन पैकेजों के अपने उप पैकेज हैं: /

पुनश्च: मेरे DevOps सर्वर और वर्कस्टेशन की सार्वजनिक नेटवर्क तक सीधी पहुंच नहीं है!

किसी भी मदद के लिए धन्यवाद!

0
Paul Pascher 16 पद 2020, 12:59

1 उत्तर

सबसे बढ़िया उत्तर

जिन पैकेजों पर मैं निर्भर हूं, उन्हें प्रकाशित करने का डिफ़ॉल्ट तरीका क्या होगा?

आप अपने सभी प्रोजेक्ट की निर्भरता (= अन्य लोगों द्वारा पहले से प्रकाशित मॉड्यूल) को फिर से प्रकाशित नहीं करेंगे, लेकिन आपके मॉड्यूल के उपयोगकर्ताओं को आपकी परियोजना को एक निर्भरता के रूप में स्थापित करके उन्हें स्वचालित रूप से लोड करने देंगे।

क्या मुझे इसे प्रत्येक पैकेज के लिए मैन्युअल रूप से करने के लिए एक स्क्रिप्ट लिखनी है?

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

पुनश्च: मेरे DevOps सर्वर और वर्कस्टेशन की सार्वजनिक नेटवर्क तक सीधी पहुंच नहीं है!

मुझे नहीं पता कि आपकी पोस्ट के समय यह पहले से ही संभव था या नहीं: Azure फ़ीड में आप अपस्ट्रीम स्रोत परिभाषित कर सकते हैं। तो आपका फ़ीड npmjs.org को एक प्रॉक्सी प्रदान करेगा (और इसके लिए कैशे...) )

1
gio 27 जिंदा 2021, 19:04