У npm отдельные настройки proxy и https-proxy. Различие — в назначении запроса. Для обычного HTTP-прокси, туннелирующего HTTPS, оба значения могут указывать на одну конечную точку http://.

Проектный .npmrc может содержать:

proxy=http://203.0.113.10:8080
https-proxy=http://203.0.113.10:8080
noproxy=localhost,127.0.0.1,registry.example.internal

Замените документационную точку своим прокси; для разрешённых тестов публичного реестра список HTTP-прокси предоставляет HTTP-кандидатов. Последняя строка намеренно оставляет указанный внутренний реестр на прямом соединении. Это не ещё один адрес прокси.

Попросите npm выполнить запрос

Установка из кэша — плохой тест маршрута: у npm уже может быть всё необходимое. Ping реестра — более простая проверка:

npm ping --registry=https://registry.npmjs.org/

Успешное завершение показывает, что этот вызов npm достиг маршрута к данному реестру. Оно не доказывает, что каждый хост tarball, зависимость Git или отдельный процесс пакетного менеджера использует тот же путь.

Чтобы найти конфликтующую настройку, изучите действующие значения вместо немедленного редактирования других файлов:

npm config get proxy
npm config get https-proxy
npm config get noproxy

Эти команды могут вывести учётные данные, если они встроены в URL. Изучайте вывод локально, а не вставляйте его без изменений в сообщение о проблеме.

Проектный .npmrc не используется при глобальной установке. Если не работает только npm install -g, проверьте действующую конфигурацию этого вызова, а не предполагайте, что он прочитал файл проекта.

Проверьте исключения до смены IP

npm работает и с переменными окружения прокси, а настройка noproxy может происходить из NO_PROXY. Назначение, исключённое действующей конфигурацией, может соединяться напрямую, хотя значение прокси существует. И наоборот, удаление строки из одного .npmrc не убирает унаследованную переменную окружения.

Рассматривайте ошибки сертификата отдельно

Авторизованный инспектирующий прокси может требовать CA организации, которому ваша среда Node/npm пока не доверяет. npm поддерживает файл CA:

cafile=/path/to/approved-ca-bundle.pem
strict-ssl=true

Используйте настоящий утверждённый набор для этой среды. strict-ssl=false ослабляет проверку сертификатов; это не замена выбору правильного прокси или материалов доверия.

После тестов удалите добавленные переопределения проекта и снова проверьте действующие значения. Проект унаследует прежнюю конфигурацию без изменения других проектов на том же компьютере.

Похожие статьи