@Steve Roberts cevabını genişletmek için.
Kullanıcı adım "domain \ username" biçimindedir - proxy yapılandırmasındaki eğik çizgi de dahil olmak üzere eğik çizgi oluşmasına neden oldu. Yani buna girmek:
npm config set proxy "http://domain\username:password@servername:port/"
Ben de benim domain\user
dize kodlamak URL gerekiyordu , ancak, ben kullanıcı adı içinde bir boşluk var bu yüzden bir +
boşluk URL kodlama kodlamak için koymak , ama %2B
( olarak artı işareti için URL kodlama, ancak URL olarak çift kodlanmış olur bir boşluk için kodlama %20
), bu yüzden bunun yerine aşağıdakileri yapmak zorunda kaldım:
npm komutu
// option one
// it works for some packages
npm config set http_proxy "http://DOMAIN%5Cuser+name:password@x.x.x.x:port"
npm config set proxy "http://DOMAIN%5Cuser+name:password@x.x.x.x:port"
// option two
// it works best for me
// please notice that I actually used a space
// instead of URL encode it with '+', '%20 ' OR %2B (plus url encoded)
npm config set http_proxy "http://DOMAIN%5Cuser name:password@x.x.x.x:port"
npm config set proxy "http://DOMAIN%5Cuser name:password@x.x.x.x:port"
// option two (B) as of 2019-06-01
// no DOMAIN
// instead of URL encode it with '+', '%20 ' OR %2B (plus url encoded)
npm config set http_proxy "http://user name:password@x.x.x.x:port"
npm config set proxy "http://user name:password@x.x.x.x:port"
npm yapılandırma sorunlarını giderme
Ben npm config list
yukarıda ayarlanmış ayrıştırılmış değerleri almak için kullanılır ve ben bu şekilde çift kodlama hakkında öğrendim. Tuhaf.
Temel olarak aşağıdaki gereksinimleri anlamanız gerekir:
DOMAIN
Kimlik doğrulama için bir dize gerekli mi
- Özel karakterleri kodlamanız mı gerekiyor?
- Alanlar ve (@) işaretler özellikle zorlayıcıdır
Saygılarımızla.
WINDOWS ORTAM DEĞİŞKENLERİ (CMD Komut İstemi)
Güncelleme
Yukarıdaki yapılandırmalarda bile, hala şeyler indirmek için dahili olarak İstek - Basitleştirilmiş HTTP istemcisi kullanan bazı paketler / komut dosyalarıyla bazı sorunlar yaşadığım ortaya çıkıyor . Bu nedenle, yukarıdaki benioku açıklamasında, proxy'yi komut satırında ayarlamak için ortam değişkenlerini belirtebiliriz ve Request bu değerleri onurlandırır.
Sonra, çevre değişkenlerini ayarlamaya çalıştıktan sonra (ve bunu kabul etmek konusunda isteksizim) birkaç deneme (daha çok günler gibi), nihayet aşağıdaki yönergelerle başardım:
rem notice that the value after the = has no quotations
rem - I believe that if quotations are placed after it, they become
rem part of the value, you do not want that
rem notice that there is no space before or after the = sign
rem - if you leave a space before it, you will be declaring a variable
rem name that includes such space, you do not want to do that
rem - if you leave a space after it, you will be including the space
rem as part of the value, you do not want that either
rem looks like there is no need to URL encode stuff in there
SET HTTP_PROXY=http://DOMAIN\user name:password@x.x.x.x:port
SET HTTPS_PROXY=http://DOMAIN\user name:password@x.x.x.x:port
cntlm
Proxy kurulumunu gerektiren tüm araçlarda şifremi güncelleme yükünü fark edene kadar yukarıdaki tekniği birkaç hafta boyunca kullandım.
Npm dışında, ben de kullanıyorum:
- kameriye
- serseri
- sanal kutu (linux çalışıyor)
- apt-get [linux]
- git
- vscode
- parantez
- atom
- TSD
cntlm Kurulum Adımları
Bu yüzden cntlm'yi kurdum . Ayar cntlm
oldukça ileri doğrudur, @ ini dosyasını arayınC:\Program Files\Cntlm\cntlm.ini
- Açık
C:\Program Files\Cntlm\cntlm.ini
(yönetici haklarına ihtiyacınız olabilir)
Username
ve Domain
hatları arayın (bence 8-9 hattı)
- kullanıcı adınızı ekleyin
- alan adınızı ekleyin
Cmd komut isteminde:
cd C:\Program Files\Cntlm\
cntlm -M
cntlm -H
- sizden şifre istenecektir:
cygwin warning:
MS-DOS style path detected: C:\Program Files\Cntlm\cntlm.ini
Preferred POSIX equivalent is: /Cntlm/cntlm.ini
CYGWIN environment variable option "nodosfilewarning" turns off this warning.
Consult the user's guide for more details about POSIX paths:
http://cygwin.com/cygwin-ug-net/using.html#using-pathnames
Password:
Aldığınız çıktı aşağıdaki cntlm -H
gibi görünecektir:
PassLM 561DF6AF15D5A5ADG
PassNT A1D651A5F15DFA5AD
PassNTLMv2 A1D65F1A65D1ASD51 # Only for user 'user name', domain 'DOMAIN'
- PassNTLMv2 kullanmanız önerilir, bu nedenle bir
#
satır öncesi satır ekleyin PassLM
ve PassNT
veya kullanmayın
- Çıktı Yapıştır
cntlm -H
için hatlar yerine ini dosyası PassLM
, PassNT
ve PassNTMLv2
, veya orijinal satırları açıklama ve kendi sitenizi ekleyin.
Proxy
Sunucularınızı ekleyin . Proxy sunucusunun ne olduğunu bilmiyorsanız ... Yaptığım şeyi yapın, AutoConfigURL
Kayıt Defteri anahtarını arayarak proxy otomatik yapılandırma dosyamı aradım HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings
. Bu url'ye gidin ve JavaScript olan kodu inceleyin.
- İsteğe bağlı olarak, cntlm'nin dinlediği bağlantı noktasını, bağlantı noktası numarası olan
Listen ####
satırı değiştirerek değiştirebilirsiniz ####
.
Cntlm ile NPM kurulumu
Yani, cntml proxy'nize npm işaret, sen ipucu kullanabilirsiniz, kullandığım localhost
ve cntlm için varsayılan bağlantı noktası 3128
böylece proxy url böyle görünüyor
http://localhost:3128
Doğru komutla:
npm yapılandırma kümesi proxy'si http: // localhost: 3128
Çok daha basit. Tüm araçlarınızı aynı url ile ayarlarsınız ve şifreyi yalnızca bir yerde güncellersiniz. Hayat çok daha basit değil.
Kurulum gerekir npm CA sertifikası
Npm dokümantasyonundan ca
Kurumsal proxy'niz kendi Kendinden İmzalı Sertifika ile https bağlantılarını engelliyorsa, bu kaçınılması gereken bir durumdur npm config set strict-ssl false
(büyük hayır-hayır).
Basit adımlar
- Sertifikayı tarayıcınızdan alın (Chromes iyi çalışır). Base-64 kodlu X.509 (.CER) olarak dışa aktarın
- Yeni satırları şununla değiştir:
\n
- Senin düzenleme
.npmrc
eklenti bir çizgica[]="-----BEGIN CERTIFICATE-----\nXXXX\nXXXX\n-----END CERTIFICATE-----"
Sorunlar
Ben bazen askıda npm tür tha fark ettim, bu yüzden (bazen zorla) cntlm durdurmak ve yeniden başlatın.