使用私有npm存储库时,我需要能够通过代理服务器发送一些请求,而其他请求则直接发送到服务器.
通常,设置环境变量HTTP_PROXY,HTTPS_PROXY和NO_PROXY可解决此问题.
我理解npm没有no_proxy的命令行选项,但我无法让npm尊重NO_PROXY环境变量:在设置上面的环境变量之后,npm安装在下载外部库时需要超时(这需要通过公司代理下载)
我的〜/ .npmrc文件包含以下内容:
registry = http:// [internal_npm_registry]
电子邮件= [电子邮件]
我正在运行npm版本3.10.10.有没有人有同样的需求并解决它?
我在工作中遇到了同样的问题:我们有一个私有的Nexus npm存储库,我们托管一些自定义模块,我们需要npm在请求这些软件包时不使用代理.
唯一可靠的解决方案,我发现的Windows是通过设置您所列出的环境变量(组实际上去除NPM所有代理值proxy
,https-proxy
以及https_proxy
所有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
环境变量看起来像:
my-nexus-repo.com,localhost
这样做可以让我们无缝地安装所有npm软件包(甚至是像node-sass
npm之外的下载tarball 那样棘手的软件包).
有了npm 5.3.0 / node 8.4.0
,NO_PROXY
环境变量就可以发挥作用了!