npm-रजिस्ट्री उपलब्ध नहीं है - और प्रोजेक्ट का निर्माण ठप हो गया है। कॉर्पोरेट नेटवर्क में डेवलपर्स के लिए यह एक सामान्य स्थिति है, सीमित पहुंच वाले क्षेत्रों में या सख्त फ़ायरवॉल के माध्यम से काम करते समय। इस मार्गदर्शिका में हम सभी कार्यशील तरीकों पर चर्चा करेंगे: मिरर पर स्विच करने से लेकर .npmrc में प्रॉक्सी की बारीक सेटिंग तक - ताकि npm install फिर से बिना किसी त्रुटि के काम करे।
npm रजिस्ट्री क्यों ब्लॉक होती है और इस दौरान क्या होता है
आधिकारिक npm रजिस्ट्री का पता https://registry.npmjs.org है। यह एक वैश्विक CDN है, लेकिन यह कई कारणों से उपलब्ध नहीं हो सकता है, और प्रत्येक के लिए एक अलग दृष्टिकोण की आवश्यकता होती है।
रजिस्ट्री की अनुपलब्धता के मुख्य कारण
- कॉर्पोरेट फ़ायरवॉल - कंपनी बाहरी रिपॉजिटरी के लिए सीधे अनुरोधों को ब्लॉक करती है, केवल आंतरिक प्रॉक्सी सर्वर के माध्यम से ट्रैफ़िक की अनुमति देती है। यह बैंकों, सरकारी संस्थाओं, बड़े IT कंपनियों में एक मानक प्रथा है।
- भौगोलिक ब्लॉकिंग या क्षेत्रीय प्रतिबंध - कई देशों और क्षेत्रों में npmjs.org तक पहुंच इंटरनेट सेवा प्रदाता या सरकारी फ़ायरवॉल के स्तर पर सीमित है।
- इंटरनेट पर सीधे पहुंच के बिना कार्यालय नेटवर्क - अलग-अलग नेटवर्क खंडों में कार्य मशीनों को बाहरी संसाधनों तक सीधी पहुंच नहीं होती है, सभी ट्रैफ़िक कॉर्पोरेट गेटवे के माध्यम से गुजरता है।
- प्रॉक्सीकरण के साथ VPN टनल - कॉर्पोरेट VPN सभी ट्रैफ़िक को पुनर्निर्देशित करता है, और npm सीधे रजिस्ट्री तक नहीं पहुंच सकता है।
- SSL निरीक्षण के साथ समस्याएँ - कॉर्पोरेट प्रॉक्सी HTTPS ट्रैफ़िक को रोकती है और प्रमाणपत्रों को बदलती है, जिससे
SELF_SIGNED_CERT_IN_CHAINयाUNABLE_TO_VERIFY_LEAF_SIGNATUREजैसी त्रुटियाँ उत्पन्न होती हैं।
ब्लॉक किए गए रजिस्ट्री के साथ सामान्य त्रुटियाँ
npm ERR! code ECONNREFUSED npm ERR! errno ECONNREFUSED npm ERR! network request to https://registry.npmjs.org/react failed npm ERR! code ETIMEDOUT npm ERR! network This is a problem related to network connectivity. npm ERR! code CERT_HAS_EXPIRED npm ERR! code SELF_SIGNED_CERT_IN_CHAIN
इन त्रुटि कोड में से प्रत्येक एक अलग समस्या को इंगित करता है: ECONNREFUSED - फ़ायरवॉल द्वारा कनेक्शन अस्वीकृत किया गया, ETIMEDOUT - अनुरोध कहीं नहीं जा रहा है (बिना उत्तर के ब्लॉक किया गया), प्रमाणपत्र त्रुटियाँ - SSL निरीक्षण की समस्या। कारण को समझना तुरंत समाधान के दायरे को संकीर्ण करता है।
npm रजिस्ट्री मिरर: बिना प्रॉक्सी के तेज़ बायपास
ब्लॉकिंग को बायपास करने का सबसे आसान तरीका npm को वैकल्पिक रजिस्ट्री मिरर पर स्विच करना है। मिरर में वही पैकेज होते हैं जो आधिकारिक रजिस्ट्री में होते हैं, लेकिन यह अन्य सर्वरों और डोमेन पर स्थित होता है। यह तब काम करता है जब केवल registry.npmjs.org डोमेन ब्लॉक किया गया हो, न कि पूरे HTTPS ट्रैफ़िक।
लोकप्रिय npm मिरर
| मिरर | URL | विशेषताएँ |
|---|---|---|
| Taobao / npmmirror | https://registry.npmmirror.com |
हर 10 मिनट में सिंक्रनाइज़ेशन, एशिया से अच्छी गति |
| Yarn Berry मिरर | https://registry.yarnpkg.com |
Yarn टीम द्वारा समर्थित, npm-क्लाइंट के साथ संगत |
| Verdaccio (स्वयं-होस्टेड) | http://localhost:4873 |
कैशिंग के साथ अपना रजिस्ट्री, अलग-अलग नेटवर्क में काम करता है |
| Nexus Repository | http://nexus.company.local/npm |
कॉर्पोरेट समाधान, पैकेज को प्रॉक्सी और कैश करता है |
| JFrog Artifactory | https://artifactory.company.com/npm |
एंटरप्राइज-स्तर, निर्भरता का ऑडिट, पहुंच नियंत्रण |
रजिस्ट्री कैसे स्विच करें
एक कमांड के लिए स्विच करना (वैश्विक सेटिंग्स को बदले बिना):
# वैकल्पिक रजिस्ट्री के माध्यम से एक बार का इंस्टॉलेशन npm install react --registry https://registry.npmmirror.com # वर्तमान उपयोगकर्ता के लिए वैश्विक रूप से स्थापित करें npm config set registry https://registry.npmmirror.com # वर्तमान रजिस्ट्री की जांच करें npm config get registry # आधिकारिक रजिस्ट्री पर लौटें npm config set registry https://registry.npmjs.org
एक महत्वपूर्ण बिंदु: यदि आप किसी प्रोजेक्ट में कमांड के साथ मिरर पर स्विच कर रहे हैं, तो इसे .npmrc फ़ाइल में प्रोजेक्ट के रूट में फिक्स करना बेहतर है - तब सभी टीम के सदस्य प्रोजेक्ट को क्लोन करते समय सही कॉन्फ़िगरेशन प्राप्त करेंगे।
# प्रोजेक्ट के रूट में .npmrc registry=https://registry.npmmirror.com
.npmrc के माध्यम से प्रॉक्सी सेट करना: पूर्ण सिंटैक्स
जब मिरर मदद नहीं करता (उदाहरण के लिए, जब पूरे बाहरी HTTPS ट्रैफ़िक को ब्लॉक किया गया हो), तो npm को प्रॉक्सी सर्वर का पता स्पष्ट रूप से बताना आवश्यक है। फ़ाइल .npmrc - npm की मुख्य कॉन्फ़िगरेशन फ़ाइल है, और इसमें प्रॉक्सी सेटिंग्स संग्रहीत होती हैं।
.npmrc फ़ाइलों का स्थान
npm कई स्थानों पर कॉन्फ़िगरेशन की खोज करता है - प्राथमिकता के क्रम में (उच्च से निम्न):
- प्रोजेक्ट -
/path/to/project/.npmrc- केवल इस प्रोजेक्ट पर लागू होता है - उपयोगकर्ता -
~/.npmrc- सिस्टम के वर्तमान उपयोगकर्ता के लिए लागू होता है - वैश्विक -
$PREFIX/etc/npmrc- पूरे npm इंस्टॉलेशन के लिए लागू होता है - बिल्ट-इन -
/path/to/npm/npmrc- npm की डिफ़ॉल्ट सेटिंग्स
.npmrc में प्रॉक्सी सेटिंग का सिंटैक्स
# HTTP ट्रैफ़िक के लिए प्रॉक्सी proxy=http://proxy.example.com:8080 # HTTPS ट्रैफ़िक के लिए प्रॉक्सी (रजिस्ट्री के लिए अधिकांश अनुरोधों के लिए उपयोग किया जाता है) https-proxy=http://proxy.example.com:8080 # प्रमाणीकरण के साथ प्रॉक्सी (URL में लॉगिन:पासवर्ड) proxy=http://username:[email protected]:8080 https-proxy=http://username:[email protected]:8080 # अपवाद - प्रॉक्सी को बायपास करने वाले पते noproxy=localhost,127.0.0.1,internal.company.com
⚠️ HTTPS-प्रॉक्सी के बारे में महत्वपूर्ण
कृपया ध्यान दें: https-proxy प्रॉक्सी सर्वर का पता बताता है, जिसके माध्यम से npm HTTPS अनुरोध करेगा। प्रॉक्सी का पता http:// से शुरू हो सकता है - यह सामान्य है। अधिकांश कॉर्पोरेट प्रॉक्सी HTTP पर कनेक्शन स्वीकार करते हैं, लेकिन वे CONNECT विधि के माध्यम से HTTPS को टनल करने में सक्षम होते हैं।
npm config कमांड के माध्यम से प्रॉक्सी सेट करना
फ़ाइल को मैन्युअल रूप से संपादित करने का एक विकल्प npm config set कमांड का उपयोग करना है। यह स्वचालित रूप से सेटिंग्स को उपयोगकर्ता ~/.npmrc में लिख देगा:
# प्रॉक्सी सेट करें npm config set proxy http://proxy.example.com:8080 npm config set https-proxy http://proxy.example.com:8080 # वर्तमान प्रॉक्सी सेटिंग्स की जांच करें npm config get proxy npm config get https-proxy # प्रॉक्सी सेटिंग्स को हटाएं (सीधे कनेक्शन पर लौटें) npm config delete proxy npm config delete https-proxy # npm की सभी कॉन्फ़िगरेशन देखें npm config list
npm के लिए पर्यावरण चर के माध्यम से प्रॉक्सी
npm स्वचालित रूप से प्रॉक्सी के लिए मानक सिस्टम पर्यावरण चर पढ़ता है। यह CI/CD पाइपलाइनों, Docker कंटेनरों और उन प्रणालियों में सुविधाजनक है जहां कॉन्फ़िगरेशन वातावरण के स्तर पर निर्धारित की जाती है, फ़ाइलों के स्तर पर नहीं।
मानक पर्यावरण चर
# Linux / macOS - वर्तमान सत्र में सेट करना export HTTP_PROXY=http://proxy.example.com:8080 export HTTPS_PROXY=http://proxy.example.com:8080 export NO_PROXY=localhost,127.0.0.1 # लोअरकेस वेरिएंट (npm दोनों को समझता है) export http_proxy=http://proxy.example.com:8080 export https_proxy=http://proxy.example.com:8080 # Windows (कमांड प्रॉम्प्ट) set HTTP_PROXY=http://proxy.example.com:8080 set HTTPS_PROXY=http://proxy.example.com:8080 # Windows (PowerShell) $env:HTTP_PROXY = "http://proxy.example.com:8080" $env:HTTPS_PROXY = "http://proxy.example.com:8080"
npm कॉन्फ़िगरेशन की प्राथमिकता
यह समझना महत्वपूर्ण है कि npm प्रॉक्सी को निर्धारित करने के लिए निम्नलिखित प्राथमिकता का उपयोग करता है (उच्च से निम्न):
- कमांड लाइन फ़्लैग:
--proxy http://... - प्रॉक्सी के लिए
npm_config_के साथ पर्यावरण चर: उदाहरण के लिए,npm_config_proxy - प्रोजेक्ट
.npmrc - उपयोगकर्ता
~/.npmrc - वैश्विक
$PREFIX/etc/npmrc - मानक पर्यावरण चर
HTTP_PROXY/HTTPS_PROXY
यदि प्रॉक्सी .npmrc में सेट है, लेकिन पर्यावरण चर किसी अन्य पते की ओर इशारा करता है - .npmrc जीतेगा। यह CI/CD प्रणालियों में भ्रम की एक सामान्य वजह है।
CI/CD में सेटिंग (GitHub Actions, GitLab CI)
# GitHub Actions - जॉब या स्टेप के env सेक्शन में जोड़ें
jobs:
build:
runs-on: ubuntu-latest
env:
HTTP_PROXY: http://proxy.example.com:8080
HTTPS_PROXY: http://proxy.example.com:8080
NO_PROXY: localhost,127.0.0.1
steps:
- uses: actions/checkout@v3
- run: npm install
# GitLab CI - प्रोजेक्ट में वेरिएबल्स या .gitlab-ci.yml में
variables:
HTTP_PROXY: "http://proxy.example.com:8080"
HTTPS_PROXY: "http://proxy.example.com:8080"
प्रमाणीकरण और SSL निरीक्षण के साथ कॉर्पोरेट प्रॉक्सी
कॉर्पोरेट प्रॉक्सी सर्वर सबसे जटिल मामला हैं। वे केवल ट्रैफ़िक को पुनर्निर्देशित नहीं करते हैं, बल्कि प्रमाणीकरण की भी आवश्यकता होती है, और अक्सर SSL निरीक्षण (HTTPS ट्रैफ़िक को रोकना और डिक्रिप्ट करना) करते हैं। यह विशिष्ट प्रमाणपत्र त्रुटियाँ उत्पन्न करता है, जिनसे npm स्वचालित रूप से निपट नहीं सकता।
NTLM/बेसिक प्रमाणीकरण के साथ प्रॉक्सी
यदि कॉर्पोरेट प्रॉक्सी लॉगिन और पासवर्ड (बेसिक ऑथ) की आवश्यकता करता है, तो उन्हें सीधे URL में पास किया जा सकता है। हालाँकि NTLM प्रमाणीकरण (Windows डोमेन) के साथ यह अधिक जटिल है - npm स्वदेशी रूप से NTLM का समर्थन नहीं करता। इस मामले में एक मध्यवर्ती उपकरण का उपयोग किया जाता है।
# बेसिक ऑथ - लॉगिन और पासवर्ड URL में npm config set proxy http://user:[email protected]:8080 npm config set https-proxy http://user:[email protected]:8080 # यदि पासवर्ड में विशेष वर्ण हैं - उन्हें URL-एन्कोड करना आवश्यक है # @ → %40, # → %23, : → %3A # उदाहरण: पासवर्ड "p@ss#word" → "p%40ss%23word" npm config set proxy http://user:p%40ss%[email protected]:8080
NTLM प्रमाणीकरण के लिए cntlm उपयोगिता का उपयोग किया जाता है - यह स्थानीय रूप से चलती है, सामान्य HTTP अनुरोधों को स्वीकार करती है और स्वयं कॉर्पोरेट प्रॉक्सी के साथ NTLM हैंडशेक करती है। npm के लिए यह बिना प्रमाणीकरण वाले सामान्य प्रॉक्सी के रूप में दिखाई देता है:
# cntlm सेटअप के बाद यह localhost:3128 पर सुनता है npm config set proxy http://localhost:3128 npm config set https-proxy http://localhost:3128
SSL निरीक्षण की समस्या का समाधान
SSL निरीक्षण के साथ कॉर्पोरेट प्रॉक्सी साइटों के प्रमाणपत्रों को अपने कॉर्पोरेट प्रमाणपत्र से बदल देते हैं। npm विश्वास श्रृंखला की जांच करता है और ऐसे प्रमाणपत्रों को अस्वीकार करता है। तीन दृष्टिकोण हैं:
विधि 1 (अनुशंसित): कॉर्पोरेट CA प्रमाणपत्र को विश्वसनीय में जोड़ें
# IT विभाग से कॉर्पोरेट प्रमाणपत्र प्राप्त करें (फाइल .crt या .pem) # इसे npm कॉन्फ़िगरेशन में निर्दिष्ट करें npm config set cafile /path/to/corporate-ca.crt # या cafile के माध्यम से कई प्रमाणपत्र जोड़ें # कई CA को एक PEM फ़ाइल में संयोजित किया जा सकता है
विधि 2 (अस्थायी, असुरक्षित): SSL सत्यापन बंद करें
# केवल निदान के लिए अस्थायी समाधान के रूप में उपयोग करें! npm config set strict-ssl false # या एक कमांड के लिए npm install --legacy-peer-deps --no-strict-ssl
⚠️ सुरक्षा चेतावनी
strict-ssl false SSL प्रमाणपत्रों की जांच को पूरी तरह से बंद कर देता है। यह कनेक्शन को MITM प्रकार के हमलों के लिए संवेदनशील बनाता है। इस विधि का उपयोग केवल निदान के लिए करें, उत्पादन में नहीं और न ही स्थायी रूप से। सही समाधान - cafile के माध्यम से कॉर्पोरेट CA प्रमाणपत्र जोड़ना।
npm के लिए SOCKS5 प्रॉक्सी: सहायक उपयोगिताओं के माध्यम से सेटिंग
npm स्वदेशी रूप से केवल HTTP/HTTPS प्रॉक्सी का समर्थन करता है। यदि आपके पास SOCKS5 प्रॉक्सी है (उदाहरण के लिए, रहवासी प्रॉक्सी प्रदाता से), तो इसे सीधे npm कॉन्फ़िग में निर्दिष्ट नहीं किया जा सकता। एक मध्यवर्ती परत की आवश्यकता है - एक उपयोगिता जो npm से HTTP अनुरोधों को स्वीकार करती है और उन्हें SOCKS5 के माध्यम से पुनर्निर्देशित करती है।
विधि 1: proxychains (Linux/macOS)
# proxychains स्थापित करना # Ubuntu/Debian: sudo apt-get install proxychains4 # macOS: brew install proxychains-ng # कॉन्फ़िगरेशन /etc/proxychains4.conf [ProxyList] socks5 proxy.example.com 1080 username password # proxychains के माध्यम से npm चलाना proxychains4 npm install
विधि 2: स्थानीय HTTP से SOCKS5 कनवर्टर
privoxy या polipo उपयोगिता एक स्थानीय HTTP प्रॉक्सी बनाती है, जो SOCKS5 के माध्यम से ट्रैफ़िक को टनल करती है। इसे चलाने के बाद npm को localhost पर सामान्य HTTP प्रॉक्सी दिखाई देता है:
# privoxy स्थापित करना sudo apt-get install privoxy # Ubuntu/Debian brew install privoxy # macOS # कॉन्फ़िग में जोड़ें /etc/privoxy/config: forward-socks5 / proxy.example.com:1080 . # Privoxy डिफ़ॉल्ट रूप से localhost:8118 पर सुनता है # npm को इस पते का उपयोग करने के लिए निर्दिष्ट करें: npm config set proxy http://localhost:8118 npm config set https-proxy http://localhost:8118
विधि 3: SOCKS5 प्रॉक्सी के रूप में SSH टनल
यदि आपके पास खुले इंटरनेट के साथ एक दूरस्थ सर्वर तक पहुंच है, तो आप एक SSH SOCKS5 टनल बना सकते हैं और इसके माध्यम से npm का ट्रैफ़िक निर्देशित कर सकते हैं। यह विशेष रूप से कॉर्पोरेट नेटवर्क से काम करते समय सुविधाजनक है:
# स्थानीय पोर्ट 1080 पर SSH SOCKS5 टनल बनाना ssh -D 1080 -f -C -q -N [email protected] # फिर HTTP में कनवर्ट करने के लिए privoxy या proxychains का उपयोग करें # या सीधे पर्यावरण चर के माध्यम से (Node.js कुछ लाइब्रेरी के माध्यम से SOCKS को समझता है) # विकल्प - परीक्षण के लिए curl का उपयोग करें: curl --socks5 localhost:1080 https://registry.npmjs.org/react/latest
प्रॉक्सी के विकल्प के रूप में अपना निजी रजिस्ट्री
कॉर्पोरेट और अलग-अलग वातावरण में अक्सर सबसे अच्छा समाधान प्रत्येक डेवलपर के लिए प्रॉक्सी सेट करना नहीं है, बल्कि नेटवर्क के भीतर अपना npm-रजिस्ट्री तैनात करना है। ऐसा रजिस्ट्री सार्वजनिक npmjs.org से पैकेजों को कैश करता है और उन्हें आंतरिक नेटवर्क से वितरित करता है। डेवलपर्स को इंटरनेट तक पहुंच की आवश्यकता नहीं होती है - सब कुछ स्थानीय रजिस्ट्री के माध्यम से काम करता है।
Verdaccio: 10 मिनट में तेज़ शुरुआत
Verdaccio - प्रॉक्सीकरण और कैशिंग का समर्थन करने वाला ओपन-सोर्स npm-रजिस्ट्री है। इसे npm पैकेट के रूप में स्थापित किया जाता है, और यह एक अलग सेवा के रूप में काम करता है:
# Verdaccio को वैश्विक रूप से स्थापित करना npm install -g verdaccio # चलाना (डिफ़ॉल्ट रूप से http://localhost:4873 पर सुनता है) verdaccio # npm को स्थानीय रजिस्ट्री का उपयोग करने के लिए सेट करना npm config set registry http://localhost:4873 # स्थानीय रजिस्ट्री में पैकेज प्रकाशित करना npm adduser --registry http://localhost:4873 npm publish --registry http://localhost:4873
Verdaccio की कॉन्फ़िगरेशन (~/.config/verdaccio/config.yaml) npmjs.org से पैकेजों को डाउनलोड करने के लिए बाहरी प्रॉक्सी के माध्यम से प्रॉक्सीकरण सेट करने की अनुमति देती है:
# config.yaml - प्रॉक्सी के साथ uplink सेटिंग
uplinks:
npmjs:
url: https://registry.npmjs.org/
# यदि Verdaccio स्वयं प्रॉक्सी के पीछे है:
agent_options:
http_proxy: http://proxy.company.com:8080
https_proxy: http://proxy.company.com:8080
no_proxy: localhost,127.0.0.1
packages:
'@*/*':
access: $all
publish: $authenticated
proxy: npmjs
'**':
access: $all
publish: $authenticated
proxy: npmjs
अलग-अलग वातावरण के लिए समाधानों की तुलना
| समाधान | जटिलता | कैशिंग | के लिए उपयुक्त |
|---|---|---|---|
| मिरर (npmmirror) | कम | नहीं | भौगोलिक ब्लॉकिंग, npmjs.org तक धीमा पहुंच |
| HTTP प्रॉक्सी .npmrc में | कम | नहीं | कॉर्पोरेट नेटवर्क के साथ HTTP प्रॉक्सी |
| SOCKS5 + proxychains | मध्यम | नहीं | रहवासी/मोबाइल प्रॉक्सी, VPN |
| Verdaccio | मध्यम | हाँ | टीमें, अलग-अलग नेटवर्क, CI/CD |
| Nexus / Artifactory | उच्च | हाँ | एंटरप्राइज, निर्भरता का ऑडिट |
सामान्य त्रुटियों का निदान और समाधान
सही प्रॉक्सी सेटिंग के बाद भी समस्याएँ उत्पन्न हो सकती हैं। यहाँ निदान के लिए एक प्रणालीगत दृष्टिकोण और सबसे सामान्य त्रुटियों की सूची उनके समाधानों के साथ है।
चरण 1: वर्तमान npm कॉन्फ़िगरेशन की जांच करें
# सभी npm सेटिंग्स दिखाएँ (प्रॉक्सी सहित) npm config list # केवल प्रॉक्सी सेटिंग्स दिखाएँ npm config get proxy npm config get https-proxy npm config get registry npm config get strict-ssl # निदान के लिए विस्तृत आउटपुट सक्षम करें npm install react --verbose npm install react --loglevel verbose
चरण 2: सीधे रजिस्ट्री की उपलब्धता की जांच करें
# curl के माध्यम से रजिस्ट्री की उपलब्धता की जांच करें curl -v https://registry.npmjs.org/react/latest # प्रॉक्सी के माध्यम से जांचें curl -v --proxy http://proxy.example.com:8080 https://registry.npmjs.org/react/latest # पिंग की जांच करें (हमेशा HTTPS के लिए सूचनात्मक नहीं) ping registry.npmjs.org # DNS समाधान की जांच करें nslookup registry.npmjs.org
सामान्य त्रुटियाँ और उनके समाधान
| त्रुटि | कारण | समाधान |
|---|---|---|
| ECONNREFUSED | प्रॉक्सी कनेक्शन स्वीकार नहीं कर रहा है या गलत पोर्ट है | प्रॉक्सी का पता और पोर्ट, प्रॉक्सी सर्वर की उपलब्धता की जांच करें |
| ETIMEDOUT | अनुरोध फ़ायरवॉल द्वारा बिना उत्तर के ब्लॉक किया गया है | प्रॉक्सी सेट करें या मिरर पर स्विच करें |
| SELF_SIGNED_CERT | कॉर्पोरेट प्रॉक्सी का SSL निरीक्षण | cafile के माध्यम से कॉर्पोरेट CA जोड़ें |
| 407 Proxy Auth | प्रॉक्सी प्रमाणीकरण की आवश्यकता है | प्रॉक्सी URL में लॉगिन:पासवर्ड जोड़ें |
| ENOTFOUND | DNS रजिस्ट्री या प्रॉक्सी नाम को हल नहीं करता है | DNS सेटिंग्स की जांच करें, नाम के बजाय IP का उपयोग करें |
| E403 Forbidden | प्रॉक्सी npmjs.org के लिए अनुरोधों को ब्लॉक करता है | मिरर का उपयोग करें या नेटवर्क प्रशासक से संपर्क करें |
सभी प्रॉक्सी सेटिंग्स रीसेट करें
# उपयोगकर्ता कॉन्फ़िग से सभी प्रॉक्सी सेटिंग्स हटाएँ npm config delete proxy npm config delete https-proxy npm config delete noproxy # रजिस्ट्री को आधिकारिक पर रीसेट करें npm config set registry https://registry.npmjs.org # strict-ssl को वापस करें (यदि बंद किया हो) npm config set strict-ssl true # अंतिम कॉन्फ़िगरेशन की जांच करें npm config list
pnpm और Yarn के साथ काम करना जब रजिस्ट्री ब्लॉक हो
यदि आप वैकल्पिक पैकेज प्रबंधकों का उपयोग कर रहे हैं, तो प्रॉक्सी सेटिंग समान दिखती है, लेकिन सिंटैक्स थोड़ा भिन्न होता है:
# pnpm - वही .npmrc का उपयोग करता है जो npm # अतिरिक्त रूप से pnpm config के माध्यम से सेट किया जा सकता है: pnpm config set proxy http://proxy.example.com:8080 pnpm config set https-proxy http://proxy.example.com:8080 pnpm config set registry https://registry.npmmirror.com # Yarn Classic (v1) - अपना .yarnrc फ़ाइल yarn config set proxy http://proxy.example.com:8080 yarn config set https-proxy http://proxy.example.com:8080 yarn config set registry https://registry.npmmirror.com # Yarn Berry (v2+) - फ़ाइल .yarnrc.yml # httpProxy: "http://proxy.example.com:8080" # httpsProxy: "http://proxy.example.com:8080" # npmRegistryServer: "https://registry.npmmirror.com"
विशिष्ट स्कोप वाले पैकेजों के लिए प्रॉक्सी सेटिंग
कभी-कभी विभिन्न पैकेजों के लिए विभिन्न रजिस्ट्री का उपयोग करना आवश्यक होता है: उदाहरण के लिए, सार्वजनिक पैकेजों को आधिकारिक npmjs.org से लेना, और कॉर्पोरेट @company/* - आंतरिक Nexus से। इसे .npmrc में स्कोप-विशिष्ट रजिस्ट्री के माध्यम से सेट किया जाता है:
# .npmrc - विभिन्न स्कोप के लिए विभिन्न रजिस्ट्री registry=https://registry.npmjs.org # कॉर्पोरेट पैकेज @company आंतरिक Nexus के माध्यम से @company:registry=http://nexus.company.local/repository/npm-hosted/ # पैकेज @myorg Verdaccio के माध्यम से @myorg:registry=http://localhost:4873/ # विशिष्ट रजिस्ट्री के लिए प्रमाणीकरण //nexus.company.local/repository/npm-hosted/:_authToken=YOUR_TOKEN_HERE
निष्कर्ष और अंतिम सिफारिशें
सही प्रॉक्सी सेटिंग के बाद भी समस्याएँ उत्पन्न हो सकती हैं। यहाँ निदान के लिए एक प्रणालीगत दृष्टिकोण और सबसे सामान्य त्रुटियों की सूची उनके समाधानों के साथ है।
```