我们在公司防火墙后面使用npm,因此在npm配置中使用代理和https代理设置.只要从外部注册表加载所有npm模块,这都可以正常工作.但事实上我们在内部github上也有内部模块.当然,访问这些模块不能使用代理.我的问题是:我可以在npm配置中指定域名列表,不应该使用代理吗?类似于unix shell中的no_proxy环境变量?
小智 23
假设您的环境如下所示:
NPM必须使用本地Nexus注册表.配置文件:.npmrc
registry = https://your.local.nexus.registry/nexus/content/groups/npm/
Run Code Online (Sandbox Code Playgroud)
您可以通过设置环境变量告诉npm使用代理
http_proxy=http://your.proxy.host:3128
https_proxy=http://your.proxy.host:3128
Run Code Online (Sandbox Code Playgroud)
但是,然后npm也会尝试使用代理到达您的(本地)Nexus注册表.
你需要有一个最新的npm版本(npm 2.14.7工作正常)并设置一个额外的环境变量来从代理中排除你的Nexus注册表:
no_proxy=your.local.nexus.registry
Run Code Online (Sandbox Code Playgroud)
自2018年8月22日发布NPM 6.4.1起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要排除某些域,您可以在 .npmrc 中添加以下行
noproxy[]=.local.nexus
noproxy[]=.internal.npm.repo
Run Code Online (Sandbox Code Playgroud)
https://docs.npmjs.com/misc/config#noproxy
| 归档时间: |
|
| 查看次数: |
19751 次 |
| 最近记录: |