npm не працює - "читати ECONNRESET"


164

У мене проблеми з npm, я не можу нічого встановити. Ось повідомлення про помилки:

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

Будь-яка ідея, чому це? Ось мої мережеві налаштування, і, здається, у мене не налаштований проксі. Я також відключив усі брандмауери.

введіть тут опис зображення


Чи можете ви відвідати цю сторінку в реєстрі браузера.npmjs.org/ yo ?
thefourtheye

Здається, термін дії їх SSL сертифікату минув!
Кушагра Гур

@thefourtheye Так, я можу відвідати це посилання
Омар,

npm нічого не встановлює. Ця проблема не є винятковою при встановленні експрес
Омар,

Можливо, вам доведеться перевірити C: \ Windows \ system32 \ npm-debug.log, у цьому файлі буде більш точна інформація для вирішення вашої проблеми.
Нанда Кумар

Відповіді:


327

використання

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

так що npm запитує httpURL-адресу замість https.

а потім спробуйте ту саму npm installкоманду


19
Ви можете, будь ласка, надати пояснення, це буде дуже корисно.
Рішул Матта

31
Це "виправлення" сприйнятливо до атак "людина-в-середині". Я б не використовував це для виробництва.
thesmart

3
Проблема може бути легкою, якщо вас заблокують на цьому веб-сайті через брандмауер / проксі вашого провайдера або компанії. Використання вищевказаного методу швидше і простіше, але це також небезпечно, оскільки він не підтверджує, що ви підключені до потрібного веб-сайту. Щоб перевірити, чи вас блокують, просто перейдіть на сторінку register.npmjs.org у вашому браузері. Ви повинні повернути трохи тексту.
Марлон

1
ха-ха .... Месяці я намагався подолати це і продовжувати місяці. Я щойно відключав VPN, захоплював пакунки, а потім знову входив. Дякую за це Усі інші, проблема - це просто неправильна адреса / порт проксі або (у цьому випадку) ваш проксі не налаштований для прослуховування трафіку HTTPS.
voidzero

1
Я знаю, що це може бути не безпечно, але давай - Я СПРАВУЮ ВСЕ, щоб позбутися помилки ECONNRESET під час створення нового кутового додатка 4 через Angular CLI, і це рішення працювало лише. Після створення нового проекту ви можете перейти до https. У будь-якому випадку @mithunsatheesh ще раз дякую
born2fr4g

38

Ви можете перевірити налаштування проксі-сервера і, можливо, видалити його.

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

Можна очікувати, що нова установка NodeJS + NPM не буде налаштовано проксі. Як не дивно, мій прийшов із визначеним проксі, який вказує на IP та порт 3128. Видалення проксі зробило трюк.


Я намагався встановити jquery в проект Angular за допомогою cmd - npm install jquery. Але виникла помилка проксі, яка тепер вирішується при спробі цього рішення.
Мухаммед Амін

15

Вам також може знадобитися вказати проксі-сервер / порт, у деяких середовищах системних параметрів для проксі недостатньо для роботи npm для роботи.

    npm config set proxy "http://your-proxy.com:80"

11

Видаліть налаштування проксі-сервера вдома та ввімкніть в мережах Office. Це може дратувати, але це працювало для мене:

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

і

npm config rm proxy   
npm config rm https-proxy

Останній біт працював для мене - я перевірив свій .npmrc файл, і старий проксі-сервер https все ще був там після видалення проксі
Jayx

це працює, але як вимкнути конфігурацію або конфігурацію за замовчуванням, коли б виходили в іншу мережу з проксі-сервером ??
Д. В. Йогеш

9

Це може бути викликано встановленням чого-небудь за допомогою npm за допомогою sudo- це призводить до того, що файли в кеші належать root, що призводить до цієї проблеми. Ви можете виправити це, запустивши:

sudo rm -rf ~/.npm

щоб видалити кеш. Потім спробуйте все, що ви робили знову, переконайтесь, що ви ніколи не використовуєте sudoразом npm(або проблема може повернутися).

Більше інформації: npm кидає помилку без sudo


забув про необхідність піднятись до адміністратора для виконання npm -g update(як я це зробив для його встановлення). Дякую.
Джордж

6
Як саме це викликано ECONNRESET? Ви маєте рацію, що sudoможете зламати речі новими способами, але змусити сервер реєстру відмовитися від з'єднання - це трохи неймовірно.
zigg


3

Три речі - зробити так, щоб npm працював добре всередині проксі-мережі.

Це встановлений реєстр npm, за замовчуванням він може зайняти https.

Реєстр npm config set " http://registry.npmjs.org/ "

По-друге, це два встановлені проксі у вашій системі. Якщо ваша організація використовує проксі або ви.

npm config set proxy " http: // username: password @ proxy-url: proxy-port "

npm config set https-proxy " http: // ім'я користувача: пароль @ proxy-url: proxy-port "

Ви також можете перевірити, встановлені вони чи ні, від

npm config отримати https-проксі

для всіх значень.


Він не показує мені жодної помилки, але установка застрягла в рядку - loadRequestedDeps: sill install loadAllDepsIntoIdealTree
RSB

Це ще одне питання. Проблема проксі-сервера вирішена. Нехай ця коротка ваша річ stackoverflow.com/questions/40874237/…
Himanshu sharma

2

Я спробував майже всі методи, розміщені тут та на інших сторінках, але не вийшло. Ось команди, які я виконував для того, щоб заохотити вас спробувати, оскільки він працював для багатьох людей (але не для мене):

  • npm config rm proxy
  • npm config rm https-proxy
  • npm config set https-proxy https://username:password@proxy.company.com:6050
  • npm config set proxy http://username:password@proxy.company.com:6050
  • npm config set registry http://registry.npmjs.org/

А потім намагалися встановити пакет npm install -g express, але це не вдалося.

Однак, коли я спробував запустити npm install npm@latest -gце дивом виконано та встановлено штрафу!
Тоді біг npm install -g expressзнову теж спрацював чудово.

TL; DR : оновлення npm до останньої версії вирішило проблему (наразі 6.0.1)


1

На роботі мені довелося завантажувати браузер і переглядати веб-сторінку (яка засвідчує мене на нашому веб-фільтрі). Потім я повторно спробував команду, і вона успішно спрацювала.


2
Не на 100% впевнений, чи це мені допомогло, чи просто збіг, але навігація до register.npmjs.org у Firefox якось допомогла npm встановити роботу наступного разу. У мене немає програмного забезпечення для веб-фільтрів.
TalkLittle

1

Це старе питання, але все одно.

У мене виникла ця проблема, коли я намагався розгорнутись до heroku, і виправлення, яке працювало на мене, полягало в тому, щоб оновити використану npmверсію. У мене була версія 2.xx, і я оновився до 3.xx


1

Ви також можете зіткнутися з цією помилкою, якщо у вас збережений маркер носія, який зараз недійсний. Я стикався з цим під час використання приватного репо, де облікові записи були стерти та скинуті, анулюючи маркер. Хоча для вашого репо може не знадобитися автентифікація, якщо у вас є маркер з попереднього входу, він буде переданий, а якщо він недійсний, ваше з'єднання буде закрито.

Вирішити це можна, увійшовши знову з новим іменем користувача та паролем, або, мабуть, просто вийшовши через npm.


1

Я не хотів переходити на http для реєстру, те, що для мене працювало, переходило з останньої версії Node до версії LTS (станом на 6x).


1

У мене була проблема з npm киданням цієї помилки.

Тож, в основному, коли була видалена помилка, я або використовував ручну установку
з git, або чекав і встановлював вказану версію, наприклад:

npm install resolve@^1.1.6

коли працює один:

npm install resolve

не працювало.

Я оновив node.js від 7 до 8 і встановлення npm проходить безперебійно.

Я думаю, що, можливо, версія 7 викликала цю проблему, оскільки @luschn перейшов на 6, щоб він також не використовував 7.

Можливо, сам реєстр повертає помилки, не показуючи проблем на сторінках свого статусу, оскільки через деякий час я міг би встановити цей пакет, а потім перейти npm installдо встановлення решти.


1

У мене була така ж проблема в моїй локальній домашній мережі без проксі. Інші відповіді в цій темі для мене не спрацювали. Що я в кінцевому підсумку робив, - це використання, yarnяке можна взаємозамінно використовувати з npm:

yarn add

На сьогоднішній день я не знаю, чому мій оберт на хвилину все ще не працює. Я точно знаю, що це проблема з моїм Wi-Fi, тому що коли я підключаюся до інтернету LTE, який транслюється зі свого смартфона, npm installзнову працює. Це, мабуть, пов'язане з налаштуваннями маршрутизатора (проблеми, які виникли, коли я підвищив швидкість інтернету, і працівник ISP замінив старий роутер на новий).


1

У мене була така ж проблема, коли я намагався запустити npmсистему, емульовану в Oracle VirtualBox . Я вирішив це, додавши DNS-адресу Google у властивості мережного адаптера.

Властивості мережевого адаптера> IPv4 властивість> Preferred DNS адресу: 8.8.8.8.


1

У мене була така ж проблема, але жодне з цих рішень не працювало правильно. Нарешті, я встановив пакунки через пряжу , яка сумісна з npm. Відповідно до офіційного веб-сайту:

Міграція з npm має бути досить простим процесом для більшості користувачів. Пряжа може споживати той же формат package.json, що і npm, і може встановити будь-який пакет з реєстру npm.

Просто встановіть пряжу, а потім запустіть інсталяцію за допомогою наступної команди, еквівалентної npm installпряжі:

yarn install

Детальніше читайте на сторінці : Пряжа: міграція з npm .



1

У мене була така ж проблема у Windows під час встановлення будь-якого пакету з npm. Виправлено це за допомогою - ** відкритого командного рядка як адміністратора та запустіть ці 3 команди ** /

1. npm config rm проксі

2. npm config rm https-proxy

3. встановити npm npm @ latest -g

ДЛЯ MAC / LINUX
1. sudo npm config rm проксі

2. sudo npm config rm https-proxy

3. sudo npm встановити npm @ latest -g

В основному це була версія isuue з npm. Будь ласка, перевірте її стурбованість



1

Брандмауер нашої компанії перестане встановлювати вузол, отже підключитися до особистої мережі та встановити, він працював для мене.


1

Я знайшов "npm config edit" кориснішим для оновлення записів для https-proxy, proxy, register

Я зробив щось подібне

  • Список конфігурацій npm
  • npm config edit (відкривається у vi)
  • Відредагуйте або встановіть конфігураційні записи для https-проксі, проксі, реєстру
  • npm встановити

1

Про всяк випадок ... просто спроба ще одного разу працювала на мене. Це може бути лише тимчасове питання про з'єднання.


1

Якщо ви використовуєте Windows, вам слід скористатися додатковими налаштуваннями системи для перевірки заявлених там середовищ, ви повинні помітити, що конфігурація проксі може лежати в межах змінних оточення, як на малюнку нижче:

Windows env vars

Отже, якщо ваш проксі-сервер недоступний або блокує трафік з npm, ви можете помітити вищезгадану помилку в цій темі. Можливо, вам взагалі не потрібен проксі, в цьому випадку просто видаліть цю змінну HTTP_PROXY env.

Я вимкнув усі налаштування проксі у своїх налаштуваннях Windows та npm, однак, npm все ще отримував тайм-аут та помилки підключення під час завантаження ресурсів, тоді я зрозумів, що все ще залишається конфігурація проксі на змінних env, що спричиняє всі проблеми.



Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.