#Что означает ошибка
ETIMEDOUT
npm ERR! network ETIMEDOUT и ECONNRESET означают, что npm не смог скачать пакеты: проблема в сети, прокси, DNS, блокировке реестра или нестабильном соединении.
Смена реестра и настройка прокси нужны только тогда, когда исходная конфигурация подтверждённо неверна и согласованы альтернативные адреса; сначала диагностируйте сеть и фактический источник пакетов.
Проверьте прокси, зеркало реестра и сеть.
#Причины и решения
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| ПроксиНастройка. | Проявляется как «ETIMEDOUT» или близкий по смыслу сбой. | Проверьте. |
| РеестрНедоступен. | Проявляется как «ETIMEDOUT» или близкий по смыслу сбой. | Смените зеркало. |
| СетьНестабильно. | Проявляется как «ETIMEDOUT» или близкий по смыслу сбой. | Повторите. |
| ТаймаутМалый. | Проявляется как «ETIMEDOUT» или близкий по смыслу сбой. | Увеличьте. |
#Пошаговое решение
- Проверьте реестрВ корне проекта откройте терминал и повторите штатную команду установки. Скопируйте первую строку с
ETIMEDOUT/ECONNRESET, адресом и портом сервера; посмотрите, какой адрес действительно использовался (npm config get registry).ETIMEDOUTчаще означает истечение времени ожидания, аECONNRESET— неожиданное закрытие соединения. Это не доказывает, что пакет отсутствует или что требуется массовая переустановка Node.js. Если сообщениеE404, используйте разбор ошибки 404. - Проверьте DNS и VPNВ терминале выполните
npm pingи посмотрите, отвечает ли текущий реестр. В браузере откройте тот же HTTPS-адрес реестра и проверьте, есть ли доступ к сайту; на Linux/macOS можно запуститьcurl -I https://registry.npmjs.org/, но для корпоративного реестра подставьте его действительный адрес. Если сайт недоступен и в браузере, проверьте сетевое подключение и статус корпоративного VPN. Если доступ есть только вне сети организации, передайте это администратору, не обходите политику подключения. - Настройте или отключите проксиЕсли
npm pingсообщает сетевую ошибку, проверьте разрешение имени: Windows — PowerShellResolve-DnsName registry.npmjs.org, macOS/Linux —nslookup registry.npmjs.orgпри наличии утилиты. При использовании частного зеркала проверяйте **имя изnpm config get registry**. Сравните результат с DNS вашей сети, проверьте время компьютера и системное доверие сертификатам. Не заменяйте DNS, VPN или корневые сертификаты случайными значениями из интернета. - Увеличьте таймауты и повторыВведите
npm config get proxy,npm config get https-proxy,npm config get cafileи откройте проектный и пользовательский.npmrc. Если компания использует прокси, возьмите правильный адрес и требования аутентификации у администратора; если в настройке остался устаревший прокси, удалите только неверную запись в соответствующем файле или черезnpm config delete proxy/npm config delete https-proxy, выяснив область действия настройки. Не выполняйтеnpm config set strict-ssl false: отключение проверки TLS небезопасно. - Очистите кэшКогда соединение нестабильно, но реестр доступен и настройка сети правильная, можно разово увеличить число повторов:
npm install --fetch-retries=5(или повторить именноnpm ci, если проект требует чистой установки по lock-файлу). Изменение на постоянной основе не требуется. Для проверки кэша выполнитеnpm cache verifyвместоnpm cache clean --force. Если ошибка осталась, соберите обрезанный журнал npm без токенов, адрес реестра, время, сведения о VPN/прокси и обратитесь к сетевому администратору.
#Проверка доступа
Проверьте штатный реестр командой npm config get registry, затем npm ping; если доступ не работает, уточните причину DNS, сетевого экрана, VPN или корпоративного прокси. Не переключайтесь автоматически на сторонние зеркала: они могут не содержать частных пакетов, а политика проекта может запрещать передачу запросов через третьих лиц.
#Прокси и сертификаты
Если организация использует прокси, получите адрес и требования от администратора. Проверьте npm config get proxy, npm config get https-proxy и .npmrc, не раскрывая пароли в логах. Удаляйте только подтверждённо устаревшие настройки. При ошибке сертификата настройте доверенный CA-файл от организации; не отключайте strict-ssl.
#Нестабильное соединение
При нестабильной связи используйте разовую настройку повторов npm install --fetch-retries=5 или ту же опцию для npm ci при наличии lock-файла. Кэш проверяйте npm cache verify. Не обновляйте глобально npm и не заставляйте Node использовать IPv4 без установления, что проблема именно в версии/маршрутизации.
npm config get registrynpm pingnpm config get proxynpm config get https-proxynpm config get cafilenpm cache verify# Только при подтверждённо нестабильной сети и правильном реестре:npm install --fetch-retries=5#Сборка в Docker и CI
В контейнерных и сборочных системах проверьте действительный реестр, сетевой маршрут, сроки токена и конфигурацию DNS на уровне организации. Системный DNS не следует заменять на публичный адрес без разрешения. npm ci подходит при наличии согласованного lock-файла и не должен заменять исправление сетевого доступа.