npm nie działa - „przeczytaj ECONNRESET”

164

Mam problem z npm, nie mogę nic zainstalować. Oto komunikaty o błędach:

C:\Windows\system32>npm install -g yo
npm http GET https://registry.npmjs.org/yo
npm http GET https://registry.npmjs.org/yo
npm http GET https://registry.npmjs.org/yo
npm ERR! network read ECONNRESET
npm ERR! network This is most likely not a problem with npm itself
npm ERR! network and is related to network connectivity.
npm ERR! network In most cases you are behind a proxy or have bad network settin
gs.
npm ERR! network
npm ERR! network If you are behind a proxy, please make sure that the
npm ERR! network 'proxy' config is set properly.  See: 'npm help config'

npm ERR! System Windows_NT 6.2.9200
npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nod
ejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "-g" "yo"
npm ERR! cwd C:\Windows\system32
npm ERR! node -v v0.10.17
npm ERR! npm -v 1.3.8
npm ERR! syscall read
npm ERR! code ECONNRESET
npm ERR! errno ECONNRESET
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     C:\Windows\system32\npm-debug.log
npm ERR! not ok code 0

Masz jakiś pomysł, dlaczego tak się dzieje? Oto moje ustawienia sieciowe i wygląda na to, że nie mam skonfigurowanego serwera proxy. Wyłączyłem też wszystkie zapory.

wprowadź opis obrazu tutaj

Omar
źródło
Czy możesz odwiedzić tę stronę w rejestrze przeglądarki.npmjs.org/ yo ?
thefourtheye
Wygląda na to, że ich certyfikat SSL wygasł!
Kushagra Gour
@thefourtheye Tak, mogę odwiedzić ten link
Omar,
npm niczego nie instaluje. Ten problem nie dotyczy wyłącznie instalacji ekspresowej
Omar,
Może być konieczne sprawdzenie C: \ Windows \ system32 \ npm-debug.log, ten plik będzie zawierał dokładniejsze informacje, aby rozwiązać problem.
Nanda Kumar

Odpowiedzi:

327

posługiwać się

npm config set registry http://registry.npmjs.org/

tak, że npm żąda adresu httpURL zamiast https.

a następnie wypróbuj to samo npm installpolecenie

mithunsatheesh
źródło
19
czy możesz również podać jakieś wyjaśnienie, będzie to bardzo pomocne.
Rishul Matta
31
Ta „poprawka” jest podatna na ataki typu man-in-the-middle. Nie użyłbym tego do produkcji.
thesmart
3
Problem może łatwo polegać na tym, że jesteś blokowany na tej stronie przez zaporę / serwer proxy usługodawcy internetowego lub firmy. Korzystanie z powyższej metody jest szybsze i łatwiejsze, ale jest również niebezpieczne, ponieważ nie sprawdza, czy jesteś połączony z właściwą witryną. Aby sprawdzić, czy jesteś blokowany, po prostu przejdź do rejestru.npmjs.org w przeglądarce. Powinieneś dostać z powrotem jakiś tekst.
Marlon
1
haha ... od miesięcy próbowałem przejść przez to z przerwami. Właśnie wyłączałem VPN, pobierałem pakiety, a następnie logowałem się ponownie. Dzięki za to. Wszyscy inni, problem polega po prostu na tym, że twój adres / port proxy jest nieprawidłowy lub (w tym przypadku) serwer proxy nie jest skonfigurowany do nasłuchiwania ruchu HTTPS.
voidzero
1
Wiem, że to może nie być bezpieczne, ale daj spokój - PRÓBOWAŁEM WSZYSTKIEGO, aby pozbyć się błędu ECONNRESET podczas tworzenia nowej aplikacji Angular 4 za pośrednictwem Angular CLI i to rozwiązanie działało tylko. Po utworzeniu nowego projektu możesz przełączyć się z powrotem na https. W każdym razie @mithunsatheesh jeszcze raz dziękuję.
born2fr4g
38

Możesz chcieć sprawdzić ustawienia serwera proxy NPM i być może je usunąć.

npm config get proxy
npm config rm proxy
npm config rm https-proxy

Można by się spodziewać, że nowa instalacja NodeJS + NPM nie będzie miała skonfigurowanego serwera proxy. O dziwo, mój miał zdefiniowany serwer proxy, wskazujący na adres IP i port 3128. Usunięcie proxy załatwiło sprawę.

jediz
źródło
Próbowałem zainstalować jquery w projekcie Angular przy użyciu polecenia cmd - npm install jquery. Wystąpił jednak błąd proxy, który został rozwiązany po wypróbowaniu tego rozwiązania.
Mohammed Amen
15

Konieczne może być również określenie serwera / portu proxy, w niektórych środowiskach ustawienia systemowe serwera proxy nie są wystarczające, aby npm działał.

    npm config set proxy "http://your-proxy.com:80"
Dmitri Mogilevski
źródło
11

Usuń ustawienia proxy w domu i włącz w sieciach Office, to może być irytujące, ale to zadziałało:

npm config set proxy http://xxx.xxx.xxx.4:8080   
npm config set https-proxy http://xxx.xxx.xxx.4:8080

i

npm config rm proxy   
npm config rm https-proxy
Ignacy Andrzej
źródło
Ostatni kawałek zadziałał dla mnie - sprawdziłem mój plik .npmrc i stare proxy https nadal tam było po usunięciu proxy
Jayx
to działa, ale jak zdekonfigurować lub zmienić konfigurację domyślną, gdy przechodzisz do innej sieci bez serwera proxy?
DV Yogesh
9

Może to być spowodowane instalacją czegokolwiek z użyciem npm sudo- powoduje to, że pliki w pamięci podręcznej są własnością roota, co powoduje ten problem. Możesz to naprawić, uruchamiając:

sudo rm -rf ~/.npm

aby usunąć pamięć podręczną. Następnie spróbuj ponownie tego, co robiłeś, upewniając się, że nigdy nie używasz sudorazem znpm (w przeciwnym razie problem może wrócić).

Dużo więcej informacji: npm zgłasza błąd bez sudo

Kevin Cooper
źródło
zapomniałem o konieczności podniesienia uprawnień administratora do działania npm -g update(tak jak to zrobiłem podczas instalacji). Dzięki.
George
6
Jak to ECONNRESETdokładnie powoduje ? Masz rację, że sudomoże to zepsuć rzeczy w nowatorski sposób, ale spowodowanie zerwania połączenia przez serwer rejestru jest trochę niewiarygodne.
zigg
4

Ponowne uruchomienie komputera sprawiło, że zadziałało.

Gowtham
źródło
To samo tutaj, +1 :)
Daniel Danielecki
3

Trzy rzeczy, które sprawiają, że npm działa dobrze w sieci proxy.

Ten zestaw rejestru npm, domyślnie może przyjmować https.

npm config ustaw rejestr „ http://registry.npmjs.org/

Drugi to dwa ustawione proxy w twoim systemie. Jeśli Twoja organizacja korzysta z serwera proxy lub Ty.

npm config ustaw proxy „ http: // nazwa użytkownika: hasło @ proxy-url: proxy-port

npm config set https-proxy " http: // nazwa użytkownika: hasło @ proxy-url: proxy-port "

Możesz również sprawdzić, czy są ustawione, czy nie, przez

npm config pobierz https-proxy

dla wszystkich wartości.

Himanshu sharma
źródło
Nie pokazuje mi żadnego błędu, ale instalacja utknęła na linii - loadRequestedDeps: sill install loadAllDepsIntoIdealTree
RSB
To inna kwestia. Twój problem z serwerem proxy został rozwiązany. Niech to skróci twoją rzecz stackoverflow.com/questions/40874237/…
Himanshu sharma
2

Wypróbowałem prawie wszystkie metody zamieszczone tutaj i na innych stronach, ale nie działały. Oto polecenia, które wykonałem w kolejności, do których wypróbowania zachęcam, ponieważ zadziałało dla wielu osób (ale nie dla mnie):

  • npm config rm proxy
  • npm config rm https-proxy
  • npm config set https-proxy https://username:[email protected]:6050
  • npm config set proxy http://username:[email protected]:6050
  • npm config set registry http://registry.npmjs.org/

A potem próbuję zainstalować pakiet npm install -g express , ale się nie udało.

Jednak kiedy próbowałem uruchomić npm install npm@latest -gto cudownie wykonane i zainstalowane dobrze!
Potem biegnpm install -g express znowu działało doskonale.

TL; DR : aktualizacja npm do najnowszej wersji rozwiązała problem (obecnie 6.0.1)

Nuhman
źródło
1

W pracy musiałem załadować przeglądarkę i przeglądać stronę internetową (co uwierzytelnia mnie w naszym filtrze sieciowym). Następnie powtórzyłem polecenie i zadziałało pomyślnie.

Helzgate
źródło
2
Nie jestem w 100% pewien, czy to pomogło mi, czy po prostu zbieg okoliczności, ale przejście do rejestru.npmjs.org w przeglądarce Firefox w jakiś sposób pomogło w instalacji npm następnym razem. Nie mam żadnego oprogramowania do filtrowania sieci.
TalkLittle
1

To stare pytanie, ale w każdym razie.

Miałem ten problem, kiedy próbowałem wdrożyć na heroku, a poprawką, która działała, była aktualizacja npmużywanej wersji. Miałem wersję 2.xx i zaktualizowałem do 3.xx

Dimitris Karagiannis
źródło
1

Możesz również napotkać ten błąd, jeśli masz zapisany token okaziciela, który jest teraz nieprawidłowy. Napotkałem to podczas korzystania z prywatnego repozytorium, w którym konta zostały wyczyszczone i zresetowane, unieważniając tokeny. Chociaż twoje repozytorium może nie wymagać uwierzytelnienia, jeśli masz token z poprzedniego logowania, zostanie on przekazany, a jeśli jest nieprawidłowy, połączenie zostanie zamknięte.

Możesz rozwiązać ten problem, logując się ponownie przy użyciu nowej nazwy użytkownika i hasła lub przypuszczalnie po prostu wylogowując się przez npm.

Carth
źródło
1

Nie chciałem przełączać się na http dla rejestru, co zadziałało, to przejście z najnowszej wersji Node do wersji LTS (obecnie 6.x).

luschn
źródło
1

Miałem problem z wyrzuceniem przez npm tego błędu.

Zasadniczo za każdym razem, gdy został wyrzucony błąd, użyłem ręcznej instalacji
z git lub czekałem i instalowałem określoną wersję, taką jak:

npm install resolve@^1.1.6

gdy biegasz sam:

npm install resolve

nie zadziałało.

Zaktualizowałem node.js z 7 do 8 i instalacja npm przebiega gładko.

Myślę, że być może wersja 7 spowodowała ten problem, ponieważ @luschn zdegradował do 6, więc nie używał też 7.

Może sam rejestr zwraca błędy bez wyświetlania problemów na stronach statusu, ponieważ po pewnym czasie mogłem zainstalować ten jeden zepsuty pakiet, a następnie przystąpić npm installdo instalacji pozostałych.

Mikrofon
źródło
1

Miałem ten sam problem w mojej lokalnej sieci domowej bez serwera proxy. Inne odpowiedzi w tym wątku nie działały dla mnie. Skończyło się na użyciu, yarnktórego można używać zamiennie z npm:

yarn add

Do dziś nie wiem, dlaczego mój npm nadal nie działa. Wiem na pewno, że to problem z moim Wi-Fi, bo jak łączę się z internetem LTE emitowanym ze smartfona npm installznowu działa. Ma to prawdopodobnie coś wspólnego z ustawieniami routera (problemy zaczęły się, gdy zaktualizowałem prędkość Internetu i pracownik usługodawcy internetowego wymienił mój stary router na nowy).

Sławy
źródło
1

Miałem ten sam problem podczas próby uruchomienia npmna systemie emulowanym w Oracle VirtualBox . Rozwiązałem to, dodając adres Google DNS we właściwościach karty sieciowej.

Właściwości karty sieciowej> Właściwości IPv4> Adres Preferowany DNS: 8.8.8.8.

Karol Trybulec
źródło
1

Miałem ten sam problem, ale żadne z tych rozwiązań nie działało poprawnie. Wreszcie zainstalowałem pakiety za pośrednictwem przędzy , która jest kompatybilna z npm. Zgodnie z oficjalną stroną internetową:

Migracja z npm powinna być dość łatwym procesem dla większości użytkowników. Przędza może używać tego samego formatu package.json co npm i może zainstalować dowolny pakiet z rejestru npm.

Po prostu zainstaluj przędzę, a następnie uruchom instalację za pomocą następującego polecenia, odpowiadającego npm installin yarn:

yarn install

Przeczytaj więcej w— Yarn: Migrating from npm .

Dariusz Woźniak
źródło
1

npm config rm proxy

npm config rm https-proxy

pracuje dla mnie!

samivic
źródło
1

Miałem ten sam problem w oknach podczas instalowania dowolnego pakietu z npm. Naprawiono to z - ** otwórz wiersz polecenia jako administrator i uruchom te 3 polecenia ** /

1. npm config rm proxy

2. npm config rm https-proxy

3. npm install npm @ latest -g

DLA MAC / LINUX
1. sudo npm config rm proxy

2. sudo npm config rm https-proxy

3. sudo npm install npm @ latest -g

Zasadniczo była to wersja isuue z npm. Sprawdź, czy działa

Shivam Gupta
źródło
1

Nasza firmowa zapora sieciowa przestanie instalować węzeł, dlatego połączy się z siecią osobistą i zainstaluje, to zadziałało.

sahi
źródło
1

Zauważyłem, że „npm config edit” jest bardziej przydatny do aktualizacji wpisów dla https-proxy, proxy, rejestru

Zrobiłem coś takiego

  • npm lista konfiguracji
  • npm config edit (otwiera się w vi)
  • Edytuj lub ustaw wpisy konfiguracyjne dla https-proxy, proxy, rejestru
  • npm install
Prasad Paravatha
źródło
1

Na wszelki wypadek ... po prostu próbowanie jeszcze raz zadziałało. To mógł być tylko tymczasowy problem połączenia.

alexr101
źródło
1

Jeśli używasz systemu Windows, powinieneś sprawdzić zaawansowane ustawienia systemu, aby sprawdzić zadeklarowane tam zmienne środowiska, powinieneś zauważyć, że konfiguracja proxy może znajdować się w zmiennych środowiskowych, jak na poniższym obrazku:

Windows env vars

Więc jeśli twój serwer proxy jest niedostępny lub blokuje ruch z npm, możesz zauważyć wspomniany błąd w tym temacie. Może w ogóle nie potrzebujesz żadnego serwera proxy, w tym przypadku po prostu usuń te zmienne env HTTP_PROXY.

Wyłączyłem wszystkie konfiguracje proxy w moich ustawieniach systemu Windows i npm, jednak npm nadal wyświetlał limit czasu i błędy połączenia podczas pobierania zasobów, a następnie odkryłem, że w zmiennych env nadal pozostaje konfiguracja proxy, która była przyczyną wszystkich problemów.

s_bighead
źródło