使用私有npm存储库时,我需要能够通过代理服务器发送一些请求,而其他请求则直接发送到服务器。
通常,设置环境变量HTTP_PROXY,HTTPS_PROXY和NO_PROXY可解决此问题。
我理解npm没有no_proxy的命令行选项,但是我无法让npm尊重NO_PROXY环境变量:在设置上面的环境变量之后,下载外部库时npm安装超时(需要通过公司代理下载)
我的〜/ .npmrc文件包含以下内容:
注册表= http://[internal_npm_registry]
电子邮件= [电子邮件]
我正在运行npm版本3.10.10。有没有人有同样的需求并解决了它?
答案 0 :(得分:7)
我在工作中遇到了同样的问题:我们有一个私有的Nexus npm存储库,我们托管一些自定义模块,我们需要npm在请求这些软件包时不使用代理。
我在Windows中找到的唯一可靠的解决方案是设置您列出的环境变量,并实际从npm中删除所有代理值(将proxy
,https-proxy
和https_proxy
全部设置为{{ 1}}在您的null
文件中。
例如,项目根目录中的.npmrc
文件如下所示:
.npmrc
坚持上面的示例,您的strict-ssl=false
ca=null
registry=http://my-nexus-repo.com/repository/npm-packages/
my-custom-registry-on-nexus:registry=http://my-nexus-repo.com/repository/hosted-npm-packages/
https_proxy=null
https-proxy=null
proxy=null
环境变量看起来像:
no_proxy
这样做可以让我们无缝地安装所有npm软件包(甚至是像my-nexus-repo.com,localhost
那些在npm之外下载tarball的棘手的软件包。)
答案 1 :(得分:5)
使用npm 5.3.0 / node 8.4.0
,NO_PROXY
环境变量可用作魅力!