Node.js गाइड · 2 मिनट पढ़ें

npm और yarn प्रॉक्सी के पीछे

कॉर्पोरेट नेटवर्क npm install को पूर्वानुमानित तरीकों से तोड़ते हैं। यहाँ बताया गया है कि npm और दोनों प्रमुख यार्न संस्करणों को HTTP प्रॉक्सी के माध्यम से स्थापित करने के लिए कैसे कॉन्फ़िगर करें — साथ ही पूरे Node टूलचेन द्वारा साझा किए गए पर्यावरण चर।

npm, yarn और HTTP प्रॉक्सी

पैकेज प्रबंधक HTTPS के माध्यम से डाउनलोड करते हैं, इसलिए उन्हें एक HTTP CONNECT प्रॉक्सी की आवश्यकता होती है — जो कि पोर्ट 3128 पर स4m HTTP एंडपॉइंट है। npm अपनी खुद की कॉन्फ़िगरेशन रखता है, इसलिए शेल के पर्यावरण चर सेट करना हमेशा पर्याप्त नहीं होता; आप आमतौर पर npm कॉन्फ़िगरेशन में दोनों प्रॉक्सी और https-proxy सेट करते हैं ताकि रजिस्ट्री ट्रैफ़िक को रूट किया जा सके। Yarn की दो पीढ़ियाँ भिन्न हैं: क्लासिक यार्न v1 अपनी खुद की प्रॉक्सी / https-proxy सेटिंग्स पढ़ता है (और मुख्य रूप से npm की इज़्ज़त करता है), जबकि Yarn Berry (v2+) httpProxy और httpsProxy कुंजियों का उपयोग करता है .yarnrc.yml में।

इन सभी में, मानक http_proxy, https_proxy और no_proxy पर्यावरण चर भी मान्य होते हैं, जो एक लॉक किए गए मशीन पर एक बार के लिए npm install को ठीक करने का सबसे तेज़ तरीका है। स4म के साथ आप USER:PASS के खिलाफ प्रमाणीकरण करते हैं proxy.s4m.online:3128 पर। प्रॉक्सी पृष्ठ और साझा पर्यावरण-चर गाइड देखें; भाई-बहन pip और conda गाइड पायथन समकक्ष को कवर करता है।

npm, yarn v1 और Berry को कॉन्फ़िगर करें

प्रत्येक उपकरण के लिए स्थायी कॉन्फ़िगरेशन और पर्यावरण-चर फ़ॉलबैक। चलाने से पहले USER:PASS को बदलें।

bash
# --- npm: persistent config (writes to ~/.npmrc) ---
npm config set proxy       http://USER:PASS@proxy.s4m.online:3128
npm config set https-proxy http://USER:PASS@proxy.s4m.online:3128
npm config set noproxy     localhost,127.0.0.1,.internal
npm install
# To undo later:
# npm config delete proxy && npm config delete https-proxy

# --- yarn v1 (classic) ---
yarn config set proxy       http://USER:PASS@proxy.s4m.online:3128
yarn config set https-proxy http://USER:PASS@proxy.s4m.online:3128

# --- Yarn Berry (v2+): .yarnrc.yml ---
cat >> .yarnrc.yml <<'YML'
httpProxy: "http://USER:PASS@proxy.s4m.online:3128"
httpsProxy: "http://USER:PASS@proxy.s4m.online:3128"
YML

# --- Environment variables: quickest one-off fix ---
export https_proxy="http://USER:PASS@proxy.s4m.online:3128"
export http_proxy="http://USER:PASS@proxy.s4m.online:3128"
export no_proxy="localhost,127.0.0.1,.internal"
npm install

प्रॉक्सी के पीछे npm install को ठीक करें

जब इंस्टॉलेशन समय समाप्त हो रहे हों, तो चीजों को आजमाने का क्रम।

यह सुनिश्चित करें कि यह प्रॉक्सी है

npm install -ddd (या --verbose के साथ) चलाएं और रजिस्ट्री के लिए ETIMEDOUT या ECONNREFUSED की तलाश करें - यह एक अवरुद्ध आउटबाउंड कनेक्शन की ओर इशारा करता है जिसे प्रॉक्सी की आवश्यकता है।

npm प्रॉक्सी और https-proxy सेट करें

npm config set का उपयोग करें दोनों प्रॉक्सी और https-proxy के लिए जो http://USER:PASS@proxy.s4m.online:3128. रजिस्ट्री ट्रैफिक की ओर इशारा करता है, यह HTTPS है, इसलिए https-proxy वह है जो आमतौर पर मायने रखता है।

अपने यार्न संस्करण से मेल खाएं

यार्न v1 के लिए yarn config set का उपयोग करें; यार्न बेरी के लिए .yarnrc.yml में httpProxy और httpsProxy जोड़ें। दोनों कॉन्फ़िगरेशन शैलियों को मिलाएं नहीं।

आंतरिक रजिस्ट्रियों के लिए नोपॉक्सी जोड़ें

यदि आप LAN पर एक निजी रजिस्ट्री का भी उपयोग करते हैं, तो इसके होस्ट को noproxy / no_proxy में जोड़ें ताकि इसे सीधे पहुंचा जा सके बजाय बाहरी प्रॉक्सी के माध्यम से।

प्रमाणन, निजी रजिस्ट्रियाँ और गोटचास

दो चीजें इंस्टॉलेशन को तोड़ देती हैं, भले ही प्रॉक्सी सेट हो। पहली, विशेष वर्ण पासवर्ड में: यदि इसमें @, : या # शामिल हैं, तो उन्हें URL-कोड करें (उदाहरण के लिए @ बन जाता है %40) या कॉन्फ़िगरेशन URL को गलत तरीके से पार्स करता है। दूसरी, सार्वजनिक और निजी रजिस्ट्रियों का मिश्रण: किसी भी आंतरिक रजिस्ट्रि होस्ट को noproxy में डालें ताकि इसे सीधे पहुंचा जा सके, जबकि सार्वजनिक npm रजिस्ट्रि प्रॉक्सी के माध्यम से जाता है।

s4m का HTTP एंडपॉइंट एक प्रमाणित डेटासेंटर प्रॉक्सी है, मीटर किए गए पे-एज़-यू-गो — CI रनर्स और डेवलपर मशीनों के लिए एक साफ फिट जो नियंत्रित निकासी के पीछे से npm तक पहुंचना चाहिए। यह एक आवासीय प्रॉक्सी नहीं है और यह एक पैकेज कैश नहीं है; ऑफ़लाइन इंस्टॉलेशन के लिए एक वास्तविक रजिस्ट्रि मिरर का उपयोग करें। जब आपके CI को एकल अनुमति प्राप्त निकासी IP की आवश्यकता होती है, तो एक समर्पित व्यक्तिगत IP जोड़ें। एक 407 का मतलब है खराब क्रेडेंशियल्स — 407 गाइड देखें। वही एंडपॉइंट pip/conda और Docker को शक्ति देता है; इसे उपकरणों के साथ मान्य करें।

FAQ

प्रश्न, उत्तरित

npm install प्रॉक्सी के पीछे लटकता या समय समाप्त क्यों होता है?

पंजीकरण HTTPS के माध्यम से पहुँचा जाता है और आपका आउटबाउंड कनेक्शन अवरुद्ध है। npm की प्रॉक्सी और https-proxy (और/या http_proxy/https_proxy पर्यावरण चर) को http://USER:PASS@proxy.s4m.online:3128. के माध्यम से रूट करने के लिए सेट करें।

मैं Yarn Berry और yarn v1 को कैसे कॉन्फ़िगर करूं?

Yarn v1 yarn config set proxy / https-proxy का उपयोग करता है। Yarn Berry (v2+) .yarnrc.yml में httpProxy और httpsProxy कुंजी का उपयोग करता है। प्रत्येक प्रोजेक्ट के लिए एक शैली का उपयोग करें; उन्हें मिलाएं नहीं।

मेरे पासवर्ड में विशेष वर्ण हैं और प्रॉक्सी विफल हो जाती है - क्यों?

npm प्रॉक्सी मान को एक URL के रूप में पार्स करता है, इसलिए पासवर्ड में @, : या # जैसे वर्णों को URL-कोडित होना चाहिए (उदाहरण के लिए @ %40 बन जाता है)। कोडिंग के बाद, क्रेडेंशियल सही ढंग से पार्स होते हैं।

मैं प्रॉक्सी से आंतरिक रजिस्ट्रि को कैसे दूर रखूं?

आंतरिक रजिस्ट्री के होस्टनाम को नोपॉक्सी (npm) या नो_PROXY (env) सूची में जोड़ें। उस होस्ट तक सीधे पहुंचा जाता है जबकि सार्वजनिक रजिस्ट्री ट्रैफ़िक अभी भी प्रॉक्सी के माध्यम से जाता है।

अपने नोड इंस्टॉलेशन को अनब्लॉक करें

npm और yarn को proxy.s4m.online:3128 पर प्रमाणित HTTP एंडपॉइंट के माध्यम से रूट करें। मीटर के अनुसार भुगतान करें, जब CI को एक अनुमति प्राप्त निकासी की आवश्यकता हो तो एक समर्पित IP के साथ।

लोगों ने इस पृष्ठ को खोजकर पाया

वास्तविक खोज वाक्यांश जिनका यह पृष्ठ उत्तर देता है — लिंक किए गए वाक्यांश उस पृष्ठ को खोलते हैं जो उन्हें गहराई से कवर करता है।