Yanıtlar:
Bu sorunu şu şekilde çözdüm:
Bu komutu çalıştırın:
npm config set strict-ssl false
Ardından, npm'yi https yerine http ile çalışacak şekilde ayarlayın:
npm config set registry "http://registry.npmjs.org/"
Sonra bu sözdizimini kullanarak paketleri yüklerim:
npm --proxy http://username:password@cacheaddress.com.br:80 install packagename
username:password
Proxy kimlik doğrulaması yapmanızı gerektirmiyorsa parçayı atlayın
DÜZENLEME: Bir arkadaşım, BOTH HTTP_PROXY ve HTTPS_PROXY ortam değişkenlerini ayarlayarak NPM'nin bir proxy arkasında çalışabileceğini , ardından normalde npm install express komutunu verebileceğini belirtti (örneğin)
EDIT2: @BStruthers yorum gibi, @ @ içeren parolaların doğru ayrıştırılamayacağını unutmayın, eğer @ @ tüm parolayı tırnak içine koymak
my@password
buysa, .npmrc dosyanızın my%40password
parola kısmı için olması gerekir . Tırnak içine koymak bazı durumlarda işe yarar, ancak kodlamak kusursuzdur.
Proxy'yi npm
kur
Şunun için HTTP
:
npm config set proxy http://proxy_host:port
Şunun için HTTPS
:
varsa https proxy adresini kullanın
npm config set https-proxy https://proxy.company.com:8080
http proxy adresini tekrar kullanın
npm config set https-proxy http://proxy.company.com:8080
Not : https-proxy'nin https
protokolü yoktur, ancak http
.
Şüphe duyduğum gibi, tüm bu komutları deneyin:
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
=======
Yeni bir terminal penceresi açtığınızda ayarlarınızı endişelenmenize gerek kalmayacak şekilde ayarlarınızı yapın ~/.bashrc
veya ~/.bash_profile
ekleyin!
Şirketiniz benimki gibi ise, şifremi sık sık değiştirmem gerekiyor. Bu yüzden ~ / .bashrc veya ~ / .bash_profile içine aşağıdakileri ekledim, böylece bir terminal açtığımda npm'imin güncel olduğunu biliyorum!
Aşağıdaki kodu ~/.bashrc
dosyanızın altına yapıştırmanız yeterlidir :
######################
# 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
Ardından yapıştırdığınız koddaki "kullanıcı adı", "şifre" ve "proxy" alanlarını düzenleyin.
Yeni bir terminal açın
Ayarlarınızı çalıştırarak kontrol edin npm config list
vecat ~/.npmrc
Modülünüzü kullanarak
npm install __
veya npm --without-ssl --insecure install __
veya npm --without-ssl --insecure --proxy http://username:password@proxy:8080 install __
.-g
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
npm config ve ardından yüklü npm paketinin kullanılması için npm --proxy http://myusername:mypassword@proxy.us.somecompany:8080 --without-ssl --insecure -g install {packagename}
. Teşekkürler
.npmrc
Dosya yerine komut satırı seçeneklerini denediniz mi?
Sanırım npm --proxy http://proxy-server:8080/ install {package-name}
bana benzer bir şey işe yaradı.
Ayrıca aşağıdakileri de gördüm:
npm config set proxy http://proxy-server:8080/
Zaten çok iyi bir tavsiye olmasına rağmen, ortamım (Windows 7, PowerShell kullanarak) ve node.js'nin (v8.1.2) mevcut son sürümü için, brunowego ayarlarını takip ettiğim zaman, yukarıdakilerin hepsi işe yaramadı .
Bu nedenle ayarlarınızı şunlarla kontrol edin:
npm config list
Proxy arkasındaki ayarlar:
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
Umarım bu birine zaman kazandırır
Windows'da benim için çalışıyor:
npm config set proxy http://domain%5Cuser:pass@host:port
Herhangi bir alan adında değilseniz, şunu kullanın:
npm config set proxy http://user:pass@host:port
Şifreniz gibi özel karakterler içeriyorsa "
, @
, :
ve benzerleri, bunların URL kodlu değerleriyle değiştirin. Örneğin "
-> %22
, @
-> %40
, :
-> %3A
. %5C
karakter için kullanılır \
.
encodeURIComponent("YourP@ssword")
şifrenizin kodlanmış sürümünü alabilirsiniz.
Http proxy'yi kurmak için -g bayrağı ayarlanmıştır:
sudo npm config set proxy http://proxy_host:port -g
Https proxy'si için tekrar -g bayrağının ayarlandığından emin olun :
sudo npm config set https-proxy http://proxy_host:port -g
$ npm config set proxy http://login:pass@host:port
$ npm config set https-proxy http://login:pass@host:port
Bu benim için çalıştı-
npm config set proxy http://proxy.company.com:8080
npm config set https-proxy http://proxy.company.com:8080
npm set strict-ssl=false
vim ~/.npmrc
ekleyin ve aşağıdakileri ekleyin. registry
Birçok durumda arızaya neden olduğu için bir parça eklemeyi unutmayın .
proxy=http://<proxy-url>:<port>
https-proxy=https://<proxy-url>:<port>
registry=http://registry.npmjs.org/
https-proxy=https://..
https-proxy=http://..
Sonunda ben AD kimlik doğrulaması ile behinde proxy olmak bu sorunu çözmeyi başardılar. Yürütmek zorunda kaldım:
npm config set proxy http://domain%5Cuser:password@proxy:port/
npm config set https-proxy http://domain%5Cuser:password@proxy:port/
URL, backshlash veya # gibi özel karakterleri kodlamak çok önemlidir. Benim durumumda kodlamak zorunda kaldım
backshlash
% 5C domain\user will
iledomain%5Cuser
#
%23%0A
gibi şifre ile imzalamak Password#2
olacakPassword%23%0A2
Ayrıca aşağıdaki ayarları ekledim:
npm config set strict-ssl false
npm config set registry http://registry.npmjs.org/
Ben proxy ile proxy ayarlamak rağmen, sorun çözüldü ama sonra bu benim için çalıştı:
npm --https-proxy http://XX.AA.AA.BB:8080 cordova eklentilerini yükle
npm - proxy http://XX.AA.AA.BB:8080 kurulum
Tüm bu seçenekleri denedim, ancak proxy'm herhangi bir nedenden dolayı sahip değildi. Sonra, umutsuzluk / umutsuzluktan doğdum, curl
Git Bash kabuğumda rastgele denedim ve işe yaradı.
Kullanarak tüm proxy seçeneklerinin ayarını kaldırma
npm config rm proxy
npm config rm https-proxy
Ve sonra npm install
Git Bash kabuğumda koşmak mükemmel çalıştı. Proxy için nasıl doğru ayarlandığını bilmiyorum ve Windows cmd
istemi değil, ama işe yaradı.
npm config set proxy <http://...>:<port_number>
npm config set registry http://registry.npmjs.org/
Bu benim sorunumu çözdü.
Sonunda farklı cevaplar bağladıktan sonra, @Kayvar cevaplarının ilk dört satırı sorunu çözmeme yardımcı oluyor:
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
Bu benim için çalıştı. Http ve https proxy'sini ayarlayın.
.Npmrc dosyasını C: \ Users \ .npmrc dizininde bulmaya çalışın
sonra açın (not defteri), yazın ve kaydedin:
proxy=http://<username>:<pass>@<proxyhost>:<port>
Not: "<" ve ">" lütfen kaldırın !!
Benim için kurumsal proxy npm olmasa da python vb tüm çalışacak olsa bile benim için.
denedim
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/
belirtildiği gibi aynı hatayı almaya devam etti.
Sadece
npm yükleme elektronu --save-dev çalıştı .npmrc dosyadan kaldırıldığında
https-proxy https://proxyccc.xxx.ca:8080
oldu
https-proxy
muhtemelen değildir https:
. En azından, her biri için aynı bağlantı noktasına sahip olmak muhtemelen doğru değildir, ancak her ikisinin de muhtemelen aynı değere sahip olduğunu düşünüyorum.
Windows sisteminde
Proxy ve kayıt defteri ayarlarını (önceden ayarlanmışsa) kaldırmayı deneyin ve üzerinden komut satırında ortam değişkenlerini
SET HTTP_PROXY=http://username:password@domain:port
SET HTTPS_PROXY=http://username:password@domain:port
sonra npm kurulumunu çalıştırmayı deneyin. Bu şekilde, proxy'yi .npmrc olarak ayarlamazsınız, ancak bu oturum için çalışır.
SET HTTP_PROXY http://username:password@domain:port
ama geçiş yapmak SET HTTP_PROXY=http://username:password@domain:port
herşeyi çalıştırıyor gibiydi
Cmd veya GIT Bash veya diğer istemlerde aşağıdaki komutu kullanın
$ npm config proxy ayarladı " http://192.168.1.101:4128 "
$ npm yapılandırma kümesi https-proxy " http://192.168.1.101:4128 "
burada 192.168.1.101 proxy ip ve 4128 bağlantı noktasıdır. proxy ayarlarınıza göre değiştirin. benim için çalışıyor.
Birçok uygulama (ör. Npm), kullanıcı ortam değişkenlerinden proxy ayarını kullanabilir.
Her biri için aynı değere sahip HTTP_PROXY ve HTTPS_PROXY değişkenlerini izleyerek ortamınıza ekleyebilirsiniz.
http: // kullanıcı: şifre @ proxyAddress: proxyport
Örneğin, Windows'unuz varsa proxy'yi aşağıdaki gibi ekleyebilirsiniz:
Benim durumumda, yapılandırma dosyalarımda "http: //" ayarını unuttum (C: \ Users \ [USERNAME] \ .npmrc dizininde bulunabilir) proxy adresleri. Yani sahip olmak yerine
proxy=http://[IPADDRESS]:[PORTNUMBER]
https-proxy=http://[IPADDRESS]:[PORTNUMBER]
sahiptim
proxy=[IPADDRESS]:[PORTNUMBER]
https-proxy=[IPADDRESS]:[PORTNUMBER]
Tabii ki işe yaramadı, ama hata mesajları da çok yardımcı olmadı ...
Bu soru için yukarıda birçok cevap vardı, ama bunların hiçbiri benim için çalışmadı. Hepsi http://
önek eklemek için bahsedildi . Ben de ekledim. Hepsi başarısız oldu.
Sonunda yanlışlıkla http://
öneki kaldırdıktan sonra çalışır . Son yapılandırma şöyle:
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
Bunun arkasındaki mantığı bilmiyorum, ama işe yaradı. Yukarıdaki yanıtlardan hiçbiri sizin için işe yaramazsa, belki de bu şekilde deneyebilirsiniz. Umarım bu faydalıdır.
Curl'un sayfasında SSL ve sertifika sorunları hakkında iyi bilgiler var . Cevabımın çoğunu oradaki bilgilere dayandırıyorum.
Sıkı ssl false kullanmak kötü bir uygulamadır ve sorun yaratabilir. Bunun yerine yapabileceğimiz, "ortadaki adam" sertifikası tarafından enjekte edilen sertifikayı eklemektir.
Windows'ta bu nasıl çözülür:
openssl x509 -inform DES -in **rootcert**.cer -out outcert.pem -text
npm config set cafile **C:\Users\username\cacert.pem
npm config set strict-ssl true
Uf! Başardık! Şimdi npm nasıl bağlanacağını anlayabilir. Bonus, curl'e aynı cabundle.pem'i kullanmasını söyleyebilir ve ayrıca HTTP'leri de anlayacaktır.
İzlediğim adımlar şunlardır (Windows):
C:\Users\<WIN_USERNAME>\.npmrc
Sertifikayı aşağıdaki adresten dosya sisteminize aktarın: https://registry.npmjs.org
Dışa aktarılan sertifika konumuna gidin ve aşağıdaki komutu verin:
npm config set cafile npm_certificate.cer
Dosyaya aşağıdaki değişiklikleri ekleyin:
registry=https://registry.npmjs.org/
strict-ssl=false
https-proxy=http://[proxy_user]:[proxy_password]@[proxy_ip]:[proxy_port]/
cafile=npm_certificate.cer
Şimdi gitmeye hazır olmalısın!
Benim sorunum aptalca bir hataya düştü. Bir gün hızlı bir şekilde proxy'leri Windows * .bat dosyasına (http_proxy, https_proxy ve ftp_proxy) düşürdüğüm için, url kodlu etki alanı \ kullanıcısı (% 5C) ve soru işaretine sahip şifre için özel karakterlerden kaçmayı unuttum '?' (% 3F). Yani, kodlanmış komuta sahip olduğunuzda, bat dosyası komutundaki '%' işaretinden kaçmayı unutmayın.
Değiştim
set http_proxy=http://domain%5Cuser:password%3F@myproxy:8080
için
set http_proxy=http://domain%%5Cuser:password%%3F@myproxy:8080
Belki bu bir son durumdur ama umarım birisine yardım eder.
Proxy ana bilgisayar ve bağlantı noktası doğru değerler olsa bile proxy ayarlarında http / http öneki olmadan verdiğimde npm başarısız oldu. Yalnızca protokol öneki eklendikten sonra çalıştı.
Sadece yeni bir terminal açıp yazın npm config edit
ve npm config -g edit
. Varsayılanlara dön. Bu yakın terminalden sonra yenisini açın ve npm --without-ssl --insecure --proxy http://username:password@proxy:8080 install <package>
global olarak eklemeniz gerekiyorsa yazın -g
.
Benim için çalıştı, umarım senin için çalışır :)