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

Есть идеи, почему это? Вот мои настройки сети, и, похоже, у меня нет настроенного прокси. Я также отключил все брандмауэры.

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


Вы можете посетить эту страницу в браузере registry.npmjs.org/yo ?
thefourtheye

Похоже, их сертификат SSL истек!
Кушагра Гур

@thefourtheye Да, я могу посетить эту ссылку
Омар

npm ничего не устанавливает. Эта проблема не является исключительной при установке экспресс
Омар

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

Ответы:


328

использование

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

так что npm запрашивает httpURL вместо https.

а затем попробуйте ту же npm installкоманду


19
Можете ли вы также предоставить некоторые объяснения, это будет очень полезно.
Ришул Матта

31
Это «исправление» подвержено атакам «человек посередине». Я бы не стал использовать это для производства.
thesmart

3
Проблема может заключаться в том, что вы заблокированы на этом веб-сайте брандмауэром или прокси-сервером вашего интернет-провайдера или компании. Использование описанного выше метода является более быстрым и простым, но оно также небезопасно, поскольку не проверяет, что вы подключены к нужному веб-сайту. Чтобы проверить, не заблокированы ли вы, просто перейдите в registry.npmjs.org в вашем браузере. Вы должны получить текст обратно.
Марлон

1
хаха .... Я пытался пережить это время от времени. Я просто отключил VPN, захватил пакеты и снова вошел в систему. Спасибо за это. В остальном проблема заключается в том, что ваш адрес / порт прокси неверен или (в этом случае) ваш прокси не настроен на прослушивание трафика HTTPS.
voidzero

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

38

Вы можете проверить настройки прокси-сервера NPM и, возможно, удалить его.

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можете что-то сломать, но заставить сервер реестра разорвать соединение немного невероятно.
зигг


3

Три вещи, чтобы npm работал хорошо внутри прокси-сети.

Это установить реестр npm, по умолчанию это может занять https.

Конфигурационный набор настроек npm " http://registry.npmjs.org/ "

Во-вторых, два установленных прокси в вашей системе. Если ваша организация использует прокси или вы.

Конфигурация npm устанавливает прокси « http: // имя пользователя: пароль @ адрес прокси: порт прокси »

Конфигурация npm установлена ​​https-прокси " http: // имя пользователя: пароль @ proxy-url: порт прокси "

Вы также можете проверить, установлены они или нет,

Конфигурация npm получить https-прокси

для всех значений.


Это не показывает мне никакой ошибки, но установка застряла на линии - loadRequestedDeps: sill install loadAllDepsIntoIdealTree
RSB

Это еще одна проблема. Ваша проблема с прокси решена. Пусть это так коротко, твоя вещь stackoverflow.com/questions/40874237/…
Химаншу Шарма

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%, помогло ли это мне, или это просто совпадение, но переход на registry.npmjs.org в Firefox как-то помог npm установить работу в следующий раз. У меня нет какого-либо программного обеспечения веб-фильтра.
TalkLittle

1

Это старый вопрос, но все равно.

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


1

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

Вы можете решить эту проблему, либо снова войдя в систему с новым именем пользователя и паролем, либо, предположительно, просто выйдя из системы через npm.


1

Я не хотел переключаться на http для реестра, для меня работало понижение с последней версии Node до версии LTS (на данный момент 6.x).


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

По сей день я не знаю, почему мой npm все еще не работает. Я точно знаю, что это проблема с моим Wi-Fi, потому что при подключении к LTE интернет, транслируемый с моего смартфона, npm installснова работает. Вероятно, это как-то связано с настройками маршрутизатора (проблемы начались, когда я повысил скорость интернета, а работник интернет-провайдера заменил старый маршрутизатор на новый).


1

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

Свойства сетевого адаптера> IPv4 свойство> Preferred DNS адрес: 8.8.8.8.


1

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

Переход с npm должен быть довольно простым процессом для большинства пользователей. Yarn может использовать тот же формат package.json, что и npm, и может установить любой пакет из реестра npm.

Просто установите пряжу, а затем запустите установку, используя следующую команду, эквивалентную npm installin yarn:

yarn install

Читайте больше на - Пряжа: Миграция с нпм .



1

У меня была такая же проблема в Windows при установке любого пакета из npm. Исправлено: - ** открыть командную строку от имени администратора и запустить эти 3 команды ** /

1. npm config rm proxy

2. Конфигурация npm rm https-прокси

3. npm установить npm @ последний -g

ДЛЯ MAC / LINUX
1. sudo npm config rm proxy

2. sudo npm config rm https-proxy

3. sudo npm установить npm @ последний -g

В основном это была версия isuue с npm. Пожалуйста, проверьте его работу



1

Брандмауэр нашей компании прекратит установку узла, следовательно, подключится к личной сети и установит, у меня это сработало.


1

Я обнаружил, что «npm config edit» более полезен для обновления записей для https-прокси, прокси, реестра

Я сделал что-то подобное

  • список конфигурации npm
  • Редактирование конфигурации npm (открывается в vi)
  • Отредактируйте или установите записи конфигурации для https-прокси, прокси, реестра
  • установка npm

1

На всякий случай ... просто попытка еще раз сработала для меня. Это может быть просто временная проблема с подключением.


1

Если вы используете Windows, вы должны проверить дополнительные параметры системы, чтобы проверить объявленные там env-переменные, вы должны заметить, что конфигурация прокси может находиться в переменных окружения, как показано на рисунке ниже:

Windows env vars

Поэтому, если ваш прокси-сервер недоступен или блокирует трафик с npm, вы можете заметить вышеупомянутую ошибку в этом разделе. Возможно, вам вообще не нужен прокси-сервер, в этом случае просто удалите переменные env HTTP_PROXY.

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



Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.