Przeczytaj o zmiennej proxy w .npmrc
pliku, ale ona nie działa. Próbowanie uniknięcia ręcznego pobierania wszystkich wymaga pakietów i instalacji.
266
Rozwiązałem ten problem w ten sposób:
Uruchomię to polecenie:
npm config set strict-ssl false
Następnie ustaw npm na działanie z http zamiast z https:
npm config set registry "http://registry.npmjs.org/"
Następnie instaluję pakiety przy użyciu tej składni:
npm --proxy http://username:[email protected]:80 install packagename
Pomiń username:password
część, jeśli serwer proxy nie wymaga uwierzytelnienia
EDYCJA: Mój przyjaciel właśnie zauważył, że możesz zmusić NPM do pracy za proxy, ustawiając BOTH HTTP_PROXY i HTTPS_PROXY, a następnie wydając normalnie polecenie npm install express (na przykład)
EDIT2: Jak skomentował @BStruthers, pamiętaj, że hasła zawierające „@” nie zostaną poprawnie przeanalizowane, jeśli zawiera @, wpisz całe hasło w cudzysłowie
my@password
, plik .npmrc powinien zawieraćmy%40password
część hasła. Umieszczanie go w cudzysłowach działa w niektórych przypadkach, ale kodowanie jest niezawodne.Skonfiguruj
npm
serwer proxyDla
HTTP
:Dla
HTTPS
:użyj adresu proxy https, jeśli taki istnieje
w przeciwnym razie ponownie użyj adresu proxy http
Uwaga : https-proxy nie ma
https
jako protokołu, alehttp
.źródło
W razie wątpliwości wypróbuj wszystkie te polecenia, tak jak ja:
=======
AKTUALIZACJA
Umieść swoje ustawienia do
~/.bashrc
albo~/.bash_profile
więc nie trzeba się martwić o ustawienia za każdym otwarciu nowego okna terminala!Jeśli twoja firma jest podobna do mojej, muszę dość często zmieniać hasło. Dodałem więc do mojego ~ / .bashrc lub ~ / .bash_profile, aby za każdym razem, gdy otwieram terminal, wiedziałem, że mój npm jest aktualny!
Po prostu wklej następujący kod na dole
~/.bashrc
pliku:Następnie edytuj pola „nazwa użytkownika”, „hasło” i „proxy” w wklejonym kodzie.
Otwórz nowy terminal
Sprawdź ustawienia, uruchamiając
npm config list
icat ~/.npmrc
Spróbuj zainstalować moduł za pomocą
npm install __
lubnpm --without-ssl --insecure install __
lubnpm --without-ssl --insecure --proxy http://username:password@proxy:8080 install __
.-g
źródło
npm config set registry http://registry.npmjs.org/
,npm config set proxy http://myusername:[email protected]:8080
,npm config set https-proxy http://myusername:[email protected]:8080
,npm config set strict-ssl false
dla npm config, a następnie zainstalować pakiet npm użyciemnpm --proxy http://myusername:[email protected]:8080 --without-ssl --insecure -g install {packagename}
. DziękiCzy wypróbowałeś opcje wiersza polecenia zamiast
.npmrc
pliku?Myślę, że coś
npm --proxy http://proxy-server:8080/ install {package-name}
dla mnie zadziałało.Widziałem także:
npm config set proxy http://proxy-server:8080/
źródło
Chociaż istnieje już wiele dobrych rad, dla mojego środowiska (Windows 7, przy użyciu PowerShell) i ostatniej dostępnej wersji node.js (v8.1.2) wszystkie powyższe nie działały, z wyjątkiem sytuacji, gdy przestrzegałem ustawień brunowego .
Sprawdź więc swoje ustawienia za pomocą:
Ustawienia za proxy:
Mam nadzieję, że pozwoli to komuś zaoszczędzić czas
źródło
Działa to dla mnie w systemie Windows:
Jeśli nie jesteś w żadnej domenie, użyj:
Jeśli hasło zawiera znaki specjalne, takie jak
"
,@
,:
i tak dalej, zastąpić je przez ich URL zakodowane wartości. Na przykład"
->%22
,@
->%40
,:
->%3A
.%5C
jest używany dla postaci\
.źródło
encodeURIComponent("YourP@ssword")
aby uzyskać zakodowaną wersję hasła.Aby skonfigurować serwer proxy HTTP, należy ustawić flagę -g :
sudo npm config set proxy http://proxy_host:port -g
W przypadku serwera proxy https ponownie upewnij się, że ustawiona jest opcja -g :
sudo npm config set https-proxy http://proxy_host:port -g
źródło
źródło
To zadziałało dla mnie
źródło
vim ~/.npmrc
na komputerze z systemem Linux i dodaj następujące. Nie zapomnij dodaćregistry
części, ponieważ w wielu przypadkach powoduje to awarię.źródło
https-proxy=https://..
nahttps-proxy=http://..
W końcu udało mi się rozwiązać ten problem, będąc proxy z uwierzytelnianiem AD. Musiałem wykonać:
Bardzo ważne jest, aby kodować URL dowolnymi specjalnymi znakami, takimi jak backshlash lub # W moim przypadku musiałem kodować
backshlash
z% 5C, więcdomain\user will
bądźdomain%5Cuser
#
zaloguj się%23%0A
tak jak hasłoPassword#2
będziePassword%23%0A2
Dodałem również następujące ustawienia:
źródło
Chociaż ustawiłem proxy za pomocą config, problem nie został rozwiązany, ale później Ten działał dla mnie:
źródło
Próbowałem wszystkich tych opcji, ale z jakiegoś powodu mój serwer proxy nie miał żadnej z nich. Potem, urodzony z rozpaczy / rozpaczy, losowo spróbowałem
curl
w mojej skorupie Git Bash i zadziałało.Wyłączenie wszystkich opcji proxy za pomocą
A potem uruchomienie
npm install
mojej powłoki Git Bash działało idealnie. Nie wiem, jak to jest poprawnie skonfigurowane dla proxy, acmd
monit Windows nie jest, ale działał.źródło
To rozwiązało mój problem.
źródło
Po ostatecznym powiązaniu różnych odpowiedzi pierwsze cztery wiersze odpowiedzi @Kayvar pomagają mi rozwiązać problem:
źródło
To zadziałało dla mnie. Ustaw serwer proxy HTTP i https.
źródło
Spróbuj znaleźć plik .npmrc w folderze C: \ Users \ .npmrc
następnie otwórz (notatnik), napisz i zapisz w środku:
PS: proszę usunąć „<” i „>” !!
źródło
Dla mnie, mimo że python itp. Wszystko będzie działać, chociaż nasz korporacyjny serwer proxy npm nie.
próbowałem
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/
zgodnie z instrukcją, ale ciągle pojawia się ten sam błąd.
Dopiero gdy usunąłem
https-proxy https://proxyccc.xxx.ca:8080
z pliku .npmrc, npm zainstalował elektron - zadziałało save-devźródło
https-proxy
prawdopodobnie nie jesthttps:
. Przynajmniej posiadanie tego samego portu dla każdego prawdopodobnie nie jest poprawne, ale myślę, że oba mają prawdopodobnie tę samą wartość.W systemie Windows
Spróbuj usunąć ustawienia proxy i rejestru (jeśli są już ustawione) i ustaw zmienne środowiskowe w wierszu poleceń za pośrednictwem
następnie spróbuj uruchomić npm install. Dzięki temu nie ustawisz proxy w .npmrc, ale dla tej sesji będzie działać.
źródło
SET HTTP_PROXY http://username:password@domain:port
ale przełączanie naSET HTTP_PROXY=http://username:password@domain:port
wydawało się, że wszystko działaUżyj poniższego polecenia w cmd lub GIT Bash lub w innym wierszu poleceń
$ Npm config zestaw proxy " http://192.168.1.101:4128 "
Zestaw konfiguracyjny npm $ https-proxy " http://192.168.1.101:4128 "
gdzie 192.168.1.101 to proxy ip, a 4128 to port. zmień zgodnie z ustawieniami serwera proxy. to działa dla mnie.
źródło
Wiele aplikacji (np. Npm) może korzystać z ustawień proxy ze zmiennych środowiskowych użytkownika.
Możesz po prostu dodać do swojego środowiska następujące zmienne HTTP_PROXY i HTTPS_PROXY, które będą miały tę samą wartość dla każdego
http: // użytkownik: hasło @ proxy Adres: proxyPort
Na przykład jeśli masz system Windows, możesz dodać serwer proxy w następujący sposób:
źródło
W moim przypadku zapomniałem ustawić „http: //” w moich plikach konfiguracyjnych (można je znaleźć w C: \ Users \ [USERNAME] \ .npmrc) adresy proxy. Więc zamiast mieć
miałem
Co oczywiście nie działało, ale komunikaty o błędach również niewiele pomogły ...
źródło
Na powyższe pytanie było wiele odpowiedzi, ale żadna z nich nie działała dla mnie. Wszystkie wymienione, aby dodać
http://
prefiks. Więc też to dodałem. Wszystko zawiodło.W końcu działa, gdy przypadkowo usunąłem
http://
prefiks. Ostateczna konfiguracja wygląda następująco:Nie znam logiki tego, ale zadziałało. Jeśli żadna z powyższych odpowiedzi nie działa dla Ciebie, być może możesz spróbować w ten sposób. Mam nadzieję, że to się przyda.
źródło
Na stronie curl znajdują się dobre informacje na temat problemów z SSL i certyfikatami . Większość odpowiedzi opieram na zawartych tam informacjach.
Używanie false-ssl false jest złą praktyką i może powodować problemy. Zamiast tego możemy dodać certyfikat, który jest wstrzykiwany przez certyfikat „człowiek w środku”.
Jak rozwiązać ten problem w systemie Windows:
openssl x509 -inform DES -in **rootcert**.cer -out outcert.pem -text
gdzie rootcert to nazwa pliku certyfikatu zapisanego w kroku 5.
npm config set cafile **C:\Users\username\cacert.pem
gdzie C: \ Users \ nazwa użytkownika \ cacert.pem jest ścieżką z kroku 10.
npm config set strict-ssl true
Uff! Zrobiliśmy to! Teraz npm może zrozumieć, jak się połączyć. Premia polega na tym, że możesz powiedzieć curlowi, aby używał tego samego cabundle.pem, a także zrozumie HTTPs.
źródło
Oto kroki, które wykonałem (Windows):
C:\Users\<WIN_USERNAME>\.npmrc
Wyeksportuj certyfikat do swojego systemu plików z następującego adresu: https://registry.npmjs.org
Przejdź do lokalizacji wyeksportowanego certyfikatu i wydaj następujące polecenie:
npm config set cafile npm_certificate.cer
Dodaj następujące zmiany do pliku:
registry=https://registry.npmjs.org/ strict-ssl=false https-proxy=http://[proxy_user]:[proxy_password]@[proxy_ip]:[proxy_port]/ cafile=npm_certificate.cer
Teraz powinieneś być gotowy do pracy!
źródło
Moja sprawa sprowadza się do głupiego błędu z mojej strony. Ponieważ pewnego dnia szybko upuściłem swoje serwery proxy do pliku Windows * .bat (http_proxy, https_proxy i ftp_proxy), zapomniałem uciec od znaków specjalnych dla domeny \ użytkownika zakodowanej w adresie URL (% 5C) i hasła ze znakiem zapytania „?” (% 3F). Innymi słowy, kiedy masz zakodowane polecenie, nie zapomnij uciec od „%” w poleceniu pliku bat.
Zmieniłam
do
Może to przypadek na marginesie, ale mam nadzieję, że komuś pomoże.
źródło
kiedy podaję bez prefiksu http / http w ustawieniach proxy npm nie powiodło się, nawet jeśli host i port proxy miały prawidłowe wartości. Działało to dopiero po dodaniu prefiksu protokołu.
źródło
Po prostu otwórz nowy terminal i wpisz
npm config edit
inpm config -g edit
. Przywróć domyślne. Po tym zamkniętym terminalu otwórz nowy i wpisz,npm --without-ssl --insecure --proxy http://username:password@proxy:8080 install <package>
jeśli potrzebujesz globalnie, po prostu dodaj-g
.To zadziałało dla mnie, mam nadzieję, że zadziała dla ciebie :)
źródło