npm安装修改注册表网址

问题描述 投票:0回答:1

我在TFS 2017服务器上托管了一个npm注册表,其中包含Package Management扩展。它的主机名有一个单独的部分,dnsXxx,没有像.com那样的任何扩展,并且在端口8080上配置。我正在使用.npmrc文件为@abc范围内的包定义此存储库:

@abc:registry=http://dnsXxx:8080/tfs/.../npm/registry/
@abc:proxy=null
@abc:always-auth=true

当我尝试从包含npm i @abc/mypackage文件的文件夹中使用.npmrc之类的命令安装其中一个软件包时,该命令需要很长时间才能最终失败并使用npm ERR! 503 Service Unavailable: @abc/mypackage@...

使用WireShark,我发现npm调用的url已被修改,我想这样“规范化”:GET http://www.dnsXxx.com/tfs/.../npm/registry/@abc%2fmypackage HTTP/1.1,导致:

  • 港口丢失了
  • www.主机前缀和.com主机扩展名添加不当

如果我在浏览器中调用固定网址,http://dnsXxx:8080/tfs/.../npm/registry/@abc%2fmypackage,我会得到预期的JSON答案。

有没有人看到解决方案?

tfs npm-install azure-artifacts
1个回答
1
投票

问题是由于企业代理,甚至在proxy=null文件中使用.npmrc。它是重新格式化主机名的代理。当我切换到服务器IP地址,更新身份验证令牌时,它终于成功了:

@abc:registry=http://10.x.y.z:8080/tfs/.../npm/registry/
@abc:always-auth=true

; Treat this auth token like a password. Do not share it with anyone, including Microsoft support. This token expires on or before 05-Feb-18.
; begin auth token
//10.x.y.z:8080/tfs/.../npm/registry/:_authToken=...    
//10.x.y.z:8080/tfs/.../npm/:_authToken=...  
; end auth token

其他选项:使用FQN作为服务器名称(xxx.yyy.zzz而不仅仅是xxx),代理不会更改(进入www.xxx.com)。

© www.soinside.com 2019 - 2024. All rights reserved.