Вопрос или проблема
Ошибка вывода
npm ERR! код EAI_AGAIN
npm ERR! номер EAI_AGAIN
npm ERR! запрос к https://registry.npmjs.org/cordova не удался, причина: getaddrinfo EAI_AGAIN registry.npmjs.org:443
npm ERR! код EAI_AGAIN
npm ERR! номер EAI_AGAIN
npm ERR! запрос к https://registry.npmjs.org/cordova не удался, причина: getaddrinfo EAI_AGAIN registry.npmjs.org:443
Он завис надолго и выдает вышеуказанную ошибку.
система не за прокси-сервером.
версия ОС ubuntu 16.04.3 lts
версия node 8.11.3
версия npm 5.6.0
Когда я ввожу npm -v
, появляется другая ошибка npm
проверка обновления не удалась.
Обновите вашу версию npm.
sudo npm cache clean -f
sudo npm install -g n
sudo n stable
npm -v
должно выводить6.4.0
.
В качестве альтернативы вы можете просто ввести sudo npm install npm@latest -g
в терминале
(Примечание: это обновит до последней стабильной версии)
Посетите эту ссылку для получения дополнительной информации.
Ответ или решение
При установке пакета через команду npm install
вы столкнулись с ошибкой, связанной с сетевым соединением, а именно:
npm ERR! code EAI_AGAIN
npm ERR! errno EAI_AGAIN
npm ERR! request to https://registry.npmjs.org/cordova failed, reason: getaddrinfo EAI_AGAIN registry.npmjs.org:443
Давайте подробно разберем причины возникновения данной проблемы и возможные способы ее решения.
Причины ошибки EAI_AGAIN
Ошибка EAI_AGAIN
чаще всего указывает на временные проблемы с сетевым соединением. Это может быть связано с:
- Проблемами DNS-сервера: Возможно, ваш компьютер не может разрешить адрес
registry.npmjs.org
, что приводит к появлению этой ошибки. - Сетевыми сбоями: Это может быть временный сбой со стороны вашего интернет-провайдера или ошибки в маршрутизации.
- Настройками файла hosts: Если файл
hosts
содержит неправильные значения, это может привести к проблемам с разрешением имен. - Межсетевыми экранами или антивирусами: Программное обеспечение может блокировать доступ к репозиториям npm.
Шаги для устранения проблемы
1. Проверка сетевого соединения
-
Пингование резервного DNS:
Откройте терминал и выполните команду:ping 8.8.8.8
Если пинг проходит, значит ваше интернет-соединение работает.
-
Проверка разрешаемости имени:
Используйте команду:nslookup registry.npmjs.org
Это должно вернуть IP-адрес. Если нет, то вероятно проблема с DNS.
2. Изменение DNS-серверов
Попробуйте изменить DNS-сервер на более стабильные, например, на Google DNS:
- Основной: 8.8.8.8
- Вторичный: 8.8.4.4
Для изменения DNS на Ubuntu:
- Откройте файл
/etc/resolv.conf
с помощью редактора:sudo nano /etc/resolv.conf
- Добавьте следующие строки:
nameserver 8.8.8.8 nameserver 8.8.4.4
- Сохраните изменения и закройте редактор.
3. Очистка кэша и обновление npm
Устаревшая версия npm может вызывать проблемы. Для обновления npm выполните:
sudo npm cache clean -f
sudo npm install -g npm@latest
Или используйте следующий метод для обновления Node.js и npm:
- Установите n (менеджер версий Node.js):
sudo npm install -g n
- Установите стабильную версию Node.js:
sudo n stable
- Проверка версии npm:
npm -v
4. Проверка файла hosts
Проверьте файл /etc/hosts
, чтобы убедиться, что там нет неправильных записей, связанных с registry.npmjs.org
.
5. Проверка межсетевых экранов и антивирусных программ
Если у вас установлено подобное ПО, временно отключите его и попробуйте снова выполнить установку пакета.
Заключение
Следуя указанным шагам, вы сможете устранить проблему с установкой пакета через npm. Если ошибка все еще сохраняется, возможно, стоит обратиться к вашему провайдеру или проверить, нет ли глобальных проблем с доступом к registry.npmjs.org
.
Используя данные рекомендации, вы можете не только устранить текущую ошибку, но и предотвратить ее возможное повторение в будущем.