क्या प्रॉक्सी के पीछे काम करने के लिए एनपीएम इंस्टॉल (कमांड) बनाने का कोई तरीका है?


266

किसी .npmrcफ़ाइल में प्रॉक्सी चर के बारे में पढ़ें, लेकिन यह काम नहीं करता है। सभी आवश्यक पैकेजों को डाउनलोड करने और इंस्टॉल करने से बचने की कोशिश करना।

जवाबों:


343

मैंने इस समस्या को इस तरह हल किया:

  1. मैं यह आदेश चलाता हूं:

    npm config set strict-ssl false
  2. फिर https के बजाय http के साथ चलने के लिए npm सेट करें:

    npm config set registry "http://registry.npmjs.org/"
  3. तब मैं इस सिंटैक्स का उपयोग करके पैकेज स्थापित करता हूं:

    npm --proxy http://username:password@cacheaddress.com.br:80 install packagename

username:passwordयदि प्रॉक्सी को प्रमाणित करने की आवश्यकता नहीं है तो भाग को छोड़ दें

संपादित करें: मेरे एक दोस्त ने बताया कि आप एनपीएम को BOTH HTTP_PROXY और HTTPS_PROXY पर्यावरण चर सेट करके एक प्रॉक्सी के पीछे काम करने के लिए प्राप्त कर सकते हैं , फिर सामान्य रूप से कमांड npm इंस्टॉल एक्सप्रेस (उदाहरण के लिए) जारी करना

EDIT2: जैसा कि @BStruthers ने टिप्पणी की है, ध्यान रखें कि "@" वाले पासवर्ड को सही ढंग से पार्स किया जाना चाहिए, अगर इसमें @ पूरा पासवर्ड उद्धरण में रखा गया है


7
यदि आपका पासवर्ड "@ npm" सम्‍मिलित है, तो आपकी प्रॉक्सी सेटिंग सही ढंग से पार्स नहीं होगी। एक संभावित वर्कआउट एक फर्जी यूज़रनेम: npm कॉन्फिगर में पासवर्ड डालने के लिए है, और सही यूज़रनेम के लिए अनुरोध के प्रॉक्सी-ऑथराइजेशन हेडर को संशोधित करने के लिए एक स्थानीय प्रॉक्सी (जैसे फिडलर) का उपयोग करें: पासवर्ड। ध्यान रखें कि उपयोगकर्ता नाम: प्रॉक्सी-प्राधिकरण में संग्रहीत पासवर्ड बेस 64 एनकोडेड है।
BStruthers

14
यदि आपके पासवर्ड में एक @ प्रतीक है, तो आप इसे अपना उपयोगकर्ता नाम और पासवर्ड उद्धरण के अंदर डालकर पास कर सकते हैं।
अनुपस्थित दिमाग़ वेब स्मिथ

9
आपके पासवर्ड में विशेष वर्ण हो सकते हैं, लेकिन वे url- एन्कोडेड होने चाहिए। इसलिए यदि आपका पासवर्ड था my@password, तो my%40passwordपासवर्ड भाग के लिए आपकी .npmrc फ़ाइल होनी चाहिए । इसे उद्धरणों में रखना कुछ मामलों में काम करता है, लेकिन इसे कूटना मूर्खतापूर्ण है।
क्रिस Jaynes

1
एक और गोत्र! यदि आपके पास पिछले सेट सिस्टम चर HTTP-PROXY हैं, तो सुनिश्चित करें कि आपने उन्हें साफ़ कर दिया है!
सिडवेल

1
आप किंवदंती! मैंने काम पर काम करने के लिए npm प्राप्त करने की कोशिश में हार मान ली थी, लेकिन इसने आखिरकार इसे हल कर दिया।
tamj0rd2

308

npmप्रॉक्सी सेट करें

के लिये HTTP :

npm config set proxy http://proxy_host:port

के लिएHTTPS :

अगर कोई है तो https प्रॉक्सी एड्रेस का इस्तेमाल करें

npm config set https-proxy https://proxy.company.com:8080

और http प्रॉक्सी पते का पुन: उपयोग करें

npm config set https-proxy http://proxy.company.com:8080

नोट : https द्वारा प्रॉक्सी नहीं है httpsप्रोटोकॉल के रूप में है, लेकिन http


9
कोई समर्थन नहीं?
चना

57
ध्यान दें कि https- प्रॉक्सी में प्रोटोकॉल के रूप में 'https' नहीं है, लेकिन 'http' है। इसे बदलने से मेरे लिए समस्या हल हो गई।
पीटरहिल

3
@peterhil उस टिप के लिए धन्यवाद। यह पागल है लेकिन मैंने "https" के साथ इसे हल करने के लिए घंटों बिताए। किसी भी विचार क्यों यह इस तरह काम करता है?
मनोज एनवी

2
@ManojNV, प्रॉक्सी सर्वर से कनेक्शन एन्क्रिप्ट नहीं किया गया है। यह HTTPS प्रॉक्सी सर्वर, सिर्फ HTTP से बात नहीं कर रहा है। पेलोड ग्राहक और गंतव्य सर्वर के बीच एसएसएल है। यदि यह प्रॉक्सी सर्वर के लिए HTTPS थे, तो चीजों को दो बार एन्क्रिप्ट / डिक्रिप्ट किया जाएगा।
जेमी

1
सूक्ष्म। बहुत बहुत धन्यवाद @peterhil
एलेक ब्रेटन

104

जब संदेह हो, तो इन सभी आदेशों की कोशिश करो, जैसा कि मैं करता हूं:

npm config set registry http://registry.npmjs.org/
npm config set proxy http://myusername:mypassword@proxy.us.somecompany:8080
npm config set https-proxy http://myusername:mypassword@proxy.us.somecompany:8080
npm config set strict-ssl false
set HTTPS_PROXY=http://myusername:mypassword@proxy.us.somecompany:8080
set HTTP_PROXY=http://myusername:mypassword@proxy.us.somecompany:8080
export HTTPS_PROXY=http://myusername:mypassword@proxy.us.somecompany:8080
export HTTP_PROXY=http://myusername:mypassword@proxy.us.somecompany:8080
export http_proxy=http://myusername:mypassword@proxy.us.somecompany:8080

npm --proxy http://myusername:mypassword@proxy.us.somecompany:8080 \
--without-ssl --insecure -g install

=======

अपडेट करें

~/.bashrcया में अपनी सेटिंग्स रखो~/.bash_profile तो आप अपनी सेटिंग्स के बारे में चिंता करने की ज़रूरत नहीं है हर बार जब आप एक नई टर्मिनल विंडो खोलते हैं!

यदि आपकी कंपनी मेरी तरह है, तो मुझे अपना पासवर्ड बहुत बार बदलना होगा। इसलिए मैंने निम्नलिखित को अपने ~ / .bashrc या ~ / .bash_profile में जोड़ा ताकि जब भी मैं एक टर्मिनल खोलूं, मुझे पता है कि मेरा npm आज तक है!

  1. बस अपनी ~/.bashrcफ़ाइल के नीचे निम्नलिखित कोड चिपकाएँ :

    ######################
    # User Variables (Edit These!)
    ######################
    username="myusername"
    password="mypassword"
    proxy="mycompany:8080"
    
    ######################
    # Environement Variables
    # (npm does use these variables, and they are vital to lots of applications)
    ######################
    export HTTPS_PROXY="http://$username:$password@$proxy"
    export HTTP_PROXY="http://$username:$password@$proxy"
    export http_proxy="http://$username:$password@$proxy"
    export https_proxy="http://$username:$password@$proxy"
    export all_proxy="http://$username:$password@$proxy"
    export ftp_proxy="http://$username:$password@$proxy"
    export dns_proxy="http://$username:$password@$proxy"
    export rsync_proxy="http://$username:$password@$proxy"
    export no_proxy="127.0.0.10/8, localhost, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16"
    
    ######################
    # npm Settings
    ######################
    npm config set registry http://registry.npmjs.org/
    npm config set proxy "http://$username:$password@$proxy"
    npm config set https-proxy "http://$username:$password@$proxy"
    npm config set strict-ssl false
    echo "registry=http://registry.npmjs.org/" > ~/.npmrc
    echo "proxy=http://$username:$password@$proxy" >> ~/.npmrc
    echo "strict-ssl=false" >> ~/.npmrc
    echo "http-proxy=http://$username:$password@$proxy" >> ~/.npmrc
    echo "http_proxy=http://$username:$password@$proxy" >> ~/.npmrc
    echo "https_proxy=http://$username:$password@$proxy" >> ~/.npmrc
    echo "https-proxy=http://$username:$password@$proxy" >> ~/.npmrc
    
    ######################
    # WGET SETTINGS
    # (Bonus Settings! Not required for npm to work, but needed for lots of other programs)
    ######################
    echo "https_proxy = http://$username:$password@$proxy/" > ~/.wgetrc
    echo "http_proxy = http://$username:$password@$proxy/" >> ~/.wgetrc
    echo "ftp_proxy = http://$username:$password@$proxy/" >> ~/.wgetrc
    echo "use_proxy = on" >> ~/.wgetrc
    
    ######################
    # CURL SETTINGS
    # (Bonus Settings! Not required for npm to work, but needed for lots of other programs)
    ######################
    echo "proxy=http://$username:$password@$proxy" > ~/.curlrc
  2. फिर आपके द्वारा चिपकाए गए कोड में "उपयोगकर्ता नाम", "पासवर्ड" और "प्रॉक्सी" फ़ील्ड संपादित करें।

  3. एक नया टर्मिनल खोलें

  4. चलाकर अपने सेटिंग्स की जाँच करें npm config listऔरcat ~/.npmrc

  5. अपने मॉड्यूल का उपयोग करके स्थापित करने का प्रयास करें

    • npm install __, या
    • npm --without-ssl --insecure install __, या
    • उपयोग करके अपनी प्रॉक्सी सेटिंग को ओवरराइड करें npm --without-ssl --insecure --proxy http://username:password@proxy:8080 install __
    • यदि आप चाहते हैं कि मॉड्यूल विश्व स्तर पर उपलब्ध हो, तो विकल्प जोड़ें -g

3
आखिरी कमांड ने मेरे लिए काम किया। इससे पहले कि सभी विफल
फ़िक्सम

3
मैं इस फू के बारे में 50 जवाब पढ़ें *** प्रॉक्सी विन्यास ... केवल काम किया है कि आपका जवाब था ... धन्यवाद !!!
लोरेंजो

4
धन्यवाद दोस्तों!! खुशी है कि यह काम कर रहा है! यह काम में एक बड़ा सिरदर्द रहा है इसलिए मुझे खुशी है कि मैं दूसरों की मदद कर सकता हूं: पी
केटी

2
+1। यह काम। मैं commands- इस्तेमाल किया npm config set registry http://registry.npmjs.org/, npm config set proxy http://myusername:mypassword@proxy.us.somecompany:8080, npm config set https-proxy http://myusername:mypassword@proxy.us.somecompany:8080, npm config set strict-ssl falseNPM config और फिर स्थापित NPM पैकेज का उपयोग करने के लिए npm --proxy http://myusername:mypassword@proxy.us.somecompany:8080 --without-ssl --insecure -g install {packagename}। धन्यवाद
Atur

1
तीन दिनों की कोशिश के बाद इस समाधान ने मेरे लिए काम किया।
मोहन सिंह 5

33

क्या आपने इसके बजाय कमांड-लाइन विकल्पों की कोशिश की है .npmrc फ़ाइल के है?

मुझे ऐसा कुछ लगता है npm --proxy http://proxy-server:8080/ install {package-name} मेरे लिए काम किया।

मैंने निम्नलिखित भी देखा है: npm config set proxy http://proxy-server:8080/


+1 मैंने दूसरों की कोशिश की यह वही था जो मेरे लिए काम करता था।
रेनैटो

20

हालांकि मेरे वातावरण के लिए पहले से ही कई अच्छी सलाह हैं (विंडोज 7, पावरशैल का उपयोग करके) और नोड के अंतिम संस्करण उपलब्ध हैं। (v8.1.2) उपरोक्त सभी ने काम नहीं किया, सिवाय इसके जब मैंने ब्रूनोवेगो सेटिंग्स का पालन ​​किया ।

इसलिए अपनी सेटिंग्स की जाँच करें:

npm config list

प्रॉक्सी के पीछे सेटिंग:

npm config set registry http://registry.npmjs.org/
npm config set http-proxy http://username:password@ip:port
npm config set https-proxy http://username:password@ip:port
npm config set proxy http://username:password@ip:port
npm set strict-ssl false

उम्मीद है कि इससे किसी का समय बचेगा


मुझे अपना प्रॉक्सी पता कैसे मिलेगा?
रोबिन

@ रॉबिन एक तरीका है, अगर विंडोज़ का उपयोग करते हुए, IE उन्हें स्टोर करता है। आप IE के तहत जा सकते हैं और कनेक्शन के तहत LAN सेटिंग्स देख सकते हैं, और यह वहां दिखाएगा।
ईगलिई

@ रॉबिन निश्चित रूप से ब्राउज़र पर निर्भर करता है, लेकिन आमतौर पर सेटिंग्स के तहत होता है
कारमाइन टैम्बस्किया

सेटिंग के तहत ब्राउज़रों में @Robin आपको प्रॉक्सी सेटिंग को देखना / जांचना चाहिए। आम तौर पर .pac के साथ एक फ़ाइल होती है जहाँ अंतिम पसंद होनी चाहिए: PROXY YourProxyAdress: PORT
कारमाइन टैम्बस्किया

17

यह मेरे लिए विंडोज में काम करता है:

npm config set proxy http://domain%5Cuser:pass@host:port

यदि आप किसी डोमेन में नहीं हैं, तो उपयोग करें:

npm config set proxy http://user:pass@host:port

यदि आपके पासवर्ड में विशेष वर्ण हैं ", जैसे कि @, :और इसी तरह, उन्हें उनके URL एन्कोड किए गए मानों से बदल दें। उदाहरण के लिए "-> %22, @-> %40, :-> %3A%5Cचरित्र के लिए प्रयोग किया जाता है \


6
सलाह के लिए धन्यवाद, यह मेरे लिए काम किया। आप अपने javascript कंसोल को ctrl + shift + j के साथ खोल सकते हैं और encodeURIComponent("YourP@ssword")अपने पासवर्ड का एन्कोडेड संस्करण प्राप्त कर सकते हैं।
दांतेदार

15

Http प्रॉक्सी को सेटअप करने के लिए -g ध्वज सेट करें:

sudo npm config set proxy http://proxy_host:port -g

Https प्रॉक्सी के लिए, फिर से सुनिश्चित करें कि -g झंडा सेट है:

sudo npm config set https-proxy http://proxy_host:port -g


-g का अर्थ क्या है?
डेविड

1
स्थानीय स्थापना के लिए नहीं, विश्व स्तर पर इसे सेट करता है
आंद्रेई



7

vim ~/.npmrcअपने लिनक्स मशीन में और निम्नलिखित जोड़ें। registryकई मामलों में इस विफलता के कारण भाग को जोड़ना न भूलें ।

proxy=http://<proxy-url>:<port>
https-proxy=https://<proxy-url>:<port>
registry=http://registry.npmjs.org/

2
कई परदे के पीछे https अनुरोधों का समर्थन करते हैं, लेकिन वे खुद के लिए एक https कनेक्शन नहीं संभालेंगे। जैसे, जब मुसीबत में चल रहा है, को संशोधित करने की कोशिश https-proxy=https://..मेंhttps-proxy=http://..
यो यो

7

अंत में मैं AD प्रमाणीकरण के साथ प्रॉक्सी के पीछे होने वाली इस समस्या को हल करने में कामयाब रहा। मुझे अमल करना था:

npm config set proxy http://domain%5Cuser:password@proxy:port/
npm config set https-proxy http://domain%5Cuser:password@proxy:port/

URL के लिए यह बहुत महत्वपूर्ण है कि बैकस्लैश या # जैसे किसी विशेष वर्ण को एनकोड किया जाए

  1. backshlash% 5C के साथ ऐसा domain\user willहोdomain%5Cuser
  2. #%23%0Aजैसे पासवर्ड के साथ साइन इन Password#2होगाPassword%23%0A2

मैंने निम्नलिखित सेटिंग्स भी जोड़ी हैं:

npm config set strict-ssl false
npm config set registry http://registry.npmjs.org/

6

हालाँकि मैंने कॉन्फ़िगर के साथ प्रॉक्सी सेट किया था, समस्या हल नहीं हुई थी, लेकिन इसके बाद मेरे लिए एक काम किया:

npm --https -xy http://XX.AA.AA.BB:8080 कॉर्डोवा -प्लगइन्स इंस्टॉल करें

npm --proxy http://XX.AA.AA.BB:8080 स्थापित करें


मेरे लिए यह एक काम है, दूसरा कोई बदलाव नहीं। कमांड विंडो खोलें और ऊपर उपयोग करें और यह काम करेगा
AKS

6

मैंने इन सभी विकल्पों की कोशिश की, लेकिन मेरी प्रॉक्सी किसी कारण से इसमें नहीं थी। फिर, हताशा / निराशा से पैदा हुए, मैंने curlअपने गिट बैश शेल में बेतरतीब ढंग से कोशिश की , और यह काम किया।

उपयोग करने वाले सभी प्रॉक्सी विकल्पों को परेशान करना

npm config rm proxy
npm config rm https-proxy

और फिर npm installमेरे गिट बैश शेल में दौड़ना पूरी तरह से काम कर गया। मुझे नहीं पता कि यह प्रॉक्सी और विंडोज cmdप्रॉम्प्ट के लिए सही तरीके से कैसे सेट किया गया है , लेकिन यह काम नहीं करता है।


6
npm config set proxy <http://...>:<port_number>
npm config set registry http://registry.npmjs.org/

इससे मेरी समस्या हल हो गई।


महत्वपूर्ण बात यह थी कि लिंक को रजिस्ट्री में बदलना था: https के बजाय मेरे पास http लिंक से पहले था।
एलेक्स फेनशेटिन

6

अंत में अलग-अलग जवाबों को बांधने के बाद, @Kayvar की पहली चार पंक्तियों ने मुझे इस मुद्दे को हल करने में मदद की:

npm config set registry http://registry.npmjs.org/
npm config set proxy http://myusername:mypassword@proxy.us.somecompany:8080
npm config set https-proxy http://myusername:mypassword@proxy.us.somecompany:8080
npm config set strict-ssl false


5

C: \ Users \ .npmrc में .npmrc खोजने का प्रयास करें

फिर खोलें (नोटपैड), लिखें और अंदर सहेजें:

proxy=http://<username>:<pass>@<proxyhost>:<port>

PS: "<" और ">" को हटा दें !!


5

मेरे लिए भले ही अजगर आदि सभी काम करेंगे, हालांकि हमारे कॉर्पोरेट प्रॉक्सी npm नहीं होंगे।

मैंने कोशिश की

npm config set proxy http://proxyccc.xxx.ca:8080 npm config set https-proxy https://proxyccc.xxx.ca:8080 npm config set registry http://registry.npmjs.org/

जैसा कि निर्देश दिया गया था लेकिन वही त्रुटि मिलती रही।

यह केवल तभी था जब मैंने .npmrc फ़ाइल से हटा दिया https-proxy https://proxyccc.xxx.ca:8080 था कि npm इलेक्ट्रॉन - save-dev काम करता है


1
आपकी https-proxyशायद नहीं है https:। कम से कम, प्रत्येक के लिए एक ही पोर्ट होना शायद सही नहीं है, लेकिन मुझे लगता है कि वे दोनों शायद एक ही मूल्य रखते हैं।
टॉडकूफमैन

5

विंडोज सिस्टम पर

प्रॉक्सी और रजिस्ट्री सेटिंग्स को हटाने का प्रयास करें (यदि पहले से सेट है) और कमांड लाइन पर पर्यावरण चर के माध्यम से सेट करें

SET HTTP_PROXY=http://username:password@domain:port
SET HTTPS_PROXY=http://username:password@domain:port

तो npm स्थापित चलाने के लिए प्रयास करें। इसके द्वारा, आप .npmrc में प्रॉक्सी सेट नहीं करेंगे, लेकिन उस सत्र के लिए यह काम करेगा।


इसने मेरे लिए काम किया। बराबरी का प्रतीक है जो यह काम करने के लिए लग रहा था। इससे पहले मैं सिर्फ उपयोग कर रहा था, SET HTTP_PROXY http://username:password@domain:portलेकिन SET HTTP_PROXY=http://username:password@domain:portकाम करने के लिए स्विचिंग लग रहा था
Dib

4

Cmd या GIT बैश या अन्य प्रॉम्प्ट पर कमांड का उपयोग करें

$ npm कॉन्फिगर सेट प्रॉक्सी " http://192.168.1.101:4128 "

$ npm कॉन्फिग सेट https-प्रॉक्सी " http://192.168.1.101:4128 "

जहाँ 192.168.1.101 प्रॉक्सी आईपी है और 4128 पोर्ट है। अपनी प्रॉक्सी सेटिंग के अनुसार बदलें। मेरे लिए यह काम करता है।


1
मुझे प्रमाणीकरण के लिए एक डोमेन का उपयोग करने के लिए मिला, और मैंने बैक-स्लेश का उपयोग किया: इस स्ट्रिंग% 5 सी के साथ। यह अंत में काम किया!
फ्रांसेस्को

4

बहुत सारे एप्लिकेशन (जैसे npm) उपयोगकर्ता पर्यावरण चर से प्रॉक्सी सेटिंग का उपयोग कर सकते हैं।

आप बस अपने वातावरण में निम्नलिखित चर HTTP_PROXY और HTTPS_PROXY जोड़ सकते हैं जो एक-दूसरे के लिए समान मान रखेंगे

http: // उपयोगकर्ता: पासवर्ड @ proxyAddress: proxyPort

उदाहरण के लिए यदि आपके पास विंडोज है तो आप अनुसरण के रूप में प्रॉक्सी जोड़ सकते हैं:

यह विंडोज पर कैसा दिखता है


4

मेरे मामले में, मैं अपनी कॉन्फिग फाइलों में "http: //" सेट करना भूल गया (C: \ Users \ [USERNAME] \ .npmrc) प्रॉक्सी एड्रेस में पाया जा सकता है। इसलिए होने के बजाय

proxy=http://[IPADDRESS]:[PORTNUMBER]
https-proxy=http://[IPADDRESS]:[PORTNUMBER]

मैं था

proxy=[IPADDRESS]:[PORTNUMBER]
https-proxy=[IPADDRESS]:[PORTNUMBER]

कौन सा काम नहीं किया, लेकिन त्रुटि संदेश बहुत मदद नहीं की ...


4

इस प्रश्न के लिए ऊपर कई उत्तर दिए गए हैं, लेकिन उनमें से किसी ने भी मेरे लिए काम नहीं किया। उन सभी को जोड़ने का उल्लेख कियाhttp:// उपसर्ग । इसलिए मैंने इसे भी जोड़ा। सभी विफल रहे।

अंत में यह काम करता है के बाद मैं गलती से http://उपसर्ग हटा दिया । अंतिम विन्यास इस तरह है:

npm config set registry http://registry.npmjs.org/
npm config set http-proxy ip:port
npm config set https-proxy ip:port
npm config set proxy ip:port
npm set strict-ssl false

मैं इसके पीछे तर्क नहीं जानता, लेकिन यह काम किया। यदि उपरोक्त में से कोई भी उत्तर आपके लिए काम नहीं करता है, तो शायद आप इस तरह से कोशिश कर सकते हैं। आशा है कि यह उपयोगी है।


4

SSL और प्रमाणपत्र मुद्दों पर कर्ल के पेज पर अच्छी जानकारी है । मैं अपने जवाब का अधिकांश हिस्सा वहां की जानकारी पर देता हूं।

सख्त-एसएसएल झूठी का उपयोग करना बुरा अभ्यास है और इससे समस्याएं पैदा हो सकती हैं। इसके बजाय हम जो कर सकते हैं, उसे "मिडिल में आदमी" सर्टिफिकेट द्वारा इंजेक्ट किया जा रहा है।

विंडोज पर इसे कैसे हल करें:

  1. कर्ल से सीए सर्टिफिकेट डाउनलोड करेंमोज़िला के सीए बंडल के आधार पर । आप अपने स्थानीय फ़ायरफ़ॉक्स डेटाबेस को परिवर्तित करने के लिए कर्ल के "फ़ायरफ़ॉक्स-db2pem.sh" शेलस्क्रिप्ट का उपयोग कर सकते हैं।
  2. उदाहरण के लिए, Chrome या इंटरनेट एक्सप्लोरर में Stackoverflow के लिए, https का उपयोग करके एक वेबपेज पर जाएं
  3. लॉक आइकन पर क्लिक करें, क्रोम में प्रमाण पत्र या "वैध" पर क्लिक करें
  4. प्रमाणन पथ पर नेविगेट करें। शीर्ष प्रमाणपत्र, या रूट प्रमाणपत्र वह है जिसे हम निकालना चाहते हैं। उस प्रमाणपत्र पर क्लिक करें और फिर "प्रमाणपत्र देखें"
  5. दूसरे टैब पर क्लिक करें, "विवरण"। "फ़ाइल की प्रतिलिपि बनाएँ" पर क्लिक करें। DER प्रारूप चुनें और नोट करें कि आप फ़ाइल को कहाँ सहेजते हैं। एक उपयुक्त फ़ाइल नाम चुनें, जैसे rootcert.cer
  6. यदि आपके पास Git इंस्टॉल है तो आपके पास opensl.exe होगा। अन्यथा, इस स्तर पर खिड़कियों के लिए गिट स्थापित करें। सबसे अधिक संभावना है कि खुलने वाला निष्पादन योग्य C: \ Program Files \ git \ usr \ bin \ opensl.exe पर होगा। हम फ़ाइल को PEM प्रारूप में कनवर्ट करने के लिए उपयोग करेंगे, जिसे समझने के लिए हमें NPM की आवश्यकता होगी।
  7. इस आदेश का उपयोग करके चरण 5 में आपके द्वारा सहेजी गई फ़ाइल को कनवर्ट करें:
    openssl x509 -inform DES -in **rootcert**.cer -out outcert.pem -text
    जहाँ rootcert आपके द्वारा चरण 5 में सहेजे गए प्रमाणपत्र का फ़ाइल नाम है।
  8. लाइन-एंडिंग्स को समझने के लिए एक टेक्स्ट-एडिटर स्मार्ट में outcert.pem खोलें, इसलिए नोटपैड नहीं। सभी टेक्स्ट का चयन करें और इसे क्लिपबोर्ड पर कॉपी करें।
  9. अब हम उस सामग्री को चरण 1 में बने सीए सर्टिफिकेट बंडल के अंत में पेस्ट करेंगे। इसलिए cacert.pem खोलें अपने उन्नत में । फ़ाइल के अंत में जाएं और सामग्री को पिछले चरण से फ़ाइल के अंत तक चिपकाएँ। (जो आपने अभी पेस्ट किया है, उसके नीचे की खाली रेखा को संरक्षित करें)
  10. एक उपयुक्त जगह पर सहेजे गए कैबंडेल.पेम को कॉपी करें। जैसे आपका% userprofile% या ~। फ़ाइल के स्थान पर ध्यान दें।
  11. अब हम नई बंडल का उपयोग करने के लिए npm / यार्न बताएंगे। एक कमांडलाइन में,
    npm config set cafile **C:\Users\username\cacert.pem
    जहां लिखें C: \ Users \ username \ cacert.pem है, चरण 10 से पथ है।
  12. वैकल्पिक रूप से: सख्त-एसएसएल को फिर से चालू करें, npm config set strict-ssl true

ओह! हमने इसे बनाया! अब npm समझ सकता है कि कैसे कनेक्ट करना है। बोनस यह है कि आप कर्ल को उसी कैबंडेल.पेम का उपयोग करने के लिए कह सकते हैं और यह HTTPs को भी समझेगा।


3

यहां वे चरण हैं जिनका मैंने अनुसरण किया है (Windows):

  1. निम्न फ़ाइल को संपादित करें C:\Users\<WIN_USERNAME>\.npmrc
  2. निम्न पते से अपनी फ़ाइल प्रणाली को प्रमाणपत्र निर्यात करें: https://registry.npmjs.org

  3. निर्यात प्रमाणपत्र स्थान पर नेविगेट करें और निम्नलिखित आदेश जारी करें:

    npm config set cafile npm_certificate.cer

  4. फ़ाइल में निम्नलिखित परिवर्तन जोड़ें: registry=https://registry.npmjs.org/ strict-ssl=false https-proxy=http://[proxy_user]:[proxy_password]@[proxy_ip]:[proxy_port]/ cafile=npm_certificate.cer

अब आप जाने के लिए तैयार रहें!


2

मेरी ओर से मेरे मुद्दे पर एक मूर्खतापूर्ण गलती हुई। जैसा कि मैंने एक दिन जल्दी से अपने परदे के पीछे की खिड़कियों को गिरा दिया। * .bat फ़ाइल (http_proxy, https_proxy, और ftp_proxy), मैं url- एन्कोडेड डोमेन \ उपयोगकर्ता (% 5C) और पासवर्ड के लिए विशेष वर्ण से बचना भूल गया था '?' (% 3F)। यह कहना है, एक बार जब आपके पास एन्कोडेड कमांड है, तो बैट फाइल कमांड में '%' से बचना न भूलें।

मैं बदल गया

set http_proxy=http://domain%5Cuser:password%3F@myproxy:8080

सेवा

set http_proxy=http://domain%%5Cuser:password%%3F@myproxy:8080

शायद यह एक किनारे का मामला है लेकिन उम्मीद है कि यह किसी की मदद करता है।


1

जब मैं प्रॉक्सी सेटिंग्स में HTTP / http उपसर्ग के बिना देता हूं npm तब भी विफल रहा जब प्रॉक्सी होस्ट और पोर्ट सही मान थे। यह प्रोटोकॉल उपसर्ग जोड़ने के बाद ही काम किया।


0

बस नया टर्मिनल खोलें और टाइप करें npm config editऔर npm config -g edit। डिफ़ॉल्ट पर पुनः सेट करें। उस करीबी टर्मिनल के बाद, नया खोलें और टाइप करें npm --without-ssl --insecure --proxy http://username:password@proxy:8080 install <package>यदि आपको विश्व स्तर पर बस जोड़ने की आवश्यकता है -g

यह मेरे लिए काम किया है, आशा है कि यह आपके लिए काम करेगा :)

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