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

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

2 ответов


предполагая, что ваша среда выглядит так:

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

As 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"