Подтвердить что ты не робот

Как исключить определенные домены из прокси-сервера npm

Мы используем npm за брандмауэром компании и, таким образом, используем настройки прокси и https-прокси в конфигурации npm. Это работает отлично, пока все модули npm загружаются из внешнего реестра. Но на самом деле у нас также есть внутренние модули на внутреннем github. Доступ к этим модулям, конечно, не должен использовать прокси. Мой вопрос: могу ли я указать список доменов в конфигурации npm, для которых прокси не должен использоваться? Что-то вроде переменной среды no_proxy в оболочке unix?

4b9b3361

Ответ 1

Предполагая, что ваша среда выглядит следующим образом:

NPM должен использовать локальный реестр Nexus. Файл конфигурации:.npmrc

registry = https://your.local.nexus.registry/nexus/content/groups/npm/

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

http_proxy=http://your.proxy.host:3128
https_proxy=http://your.proxy.host:3128

но затем npm также попытается связаться с вашим (локальным) реестром Nexus с помощью прокси.

Вам нужно иметь одну из последних версий npm (npm 2.14.7 отлично работает) и установить дополнительную переменную среды, чтобы исключить ваш реестр Nexus из прокси:

no_proxy=your.local.nexus.registry

Ответ 2

Как указано adiesner, вы не можете установить noproxy/no_proxy в npm config, поэтому единственный способ сделать это - через переменные среды:

npm config set registry "your.local.nexus.registry/nexus/content/groups/npm/"

export http_proxy="http://your.proxy.host:3128"
export https_proxy=$http_proxy
export no_proxy="your.local.nexus.registry"

Ответ 3

Начиная с NPM 6.4.1, выпущенного 2018-08-22, вы можете использовать опцию noproxy даже с настроенным настраиваемым реестром.

Пример:

  • npm config set registry "http://<my-npm-registry-host>:<registry-port>"
  • npm config set proxy "http://<my-proxy-host>:<proxy-port>"
  • npm config set https-proxy "http://<my-proxy-host>:<proxy-port>"
  • npm config set noproxy "my-proxy-host" (принимает шаблон как *.domain)

Проверьте конфигурацию:

  • npm config list

Рекомендации: