为什么npm说的是404,而curl可以是200
我添加了一个类似为什么npm说的是404,而curl可以是200,npm,artifactory,Npm,Artifactory,我添加了一个类似myscope:registry的注册表=https://myprivatedomain.com/artifactory/api/npm/npm-myregistry-release/到我的.npmrc文件 当我安装@myscope/mypackagenpm时,它说找不到404。当我对调试日志进行cat时,它会出现错误7httpfetchget404https://myprivatedomain.com/artifactory/api/npm/npm-myregistry-rel
myscope:registry的注册表=https://myprivatedomain.com/artifactory/api/npm/npm-myregistry-release/
到我的.npmrc
文件
当我安装@myscope/mypackagenpm时,它说找不到404。当我对调试日志进行cat时,它会出现错误7httpfetchget404https://myprivatedomain.com/artifactory/api/npm/npm-myregistry-release/@myscope%2FmyPackage1463ms
这很奇怪,因为如果我这样做curlhttps://myprivateregistry.com/@myscope%2fmypackage
我看到一个响应。知道我可能配置错了什么吗
在curl上使用-i
可以提供您所期望的所有适当的内容,例如200:
HTTP/1.1 200 OK
Date: Fri, 20 Jul 2018 19:03:17 GMT
Content-Type: application/json
Transfer-Encoding: chunked
Connection: keep-alive
Server: Artifactory/5.10.3
X-Artifactory-Id: 3cfb3447e11ab4943a37f53d7a5dcd357274261d
X-Artifactory-Node-Id: art2
ETag: c3636860e64da7eda14f65ff25c1e8ad11266adc
我做了npm搜索@myscope
,什么也没找到。然后我将.npmrc
更新为注册表=https://myprivatedomain.com/artifactory/api/npm/npm-myregistry-release/
并运行了搜索。我看见包裹上来了。尽管现在搜索还在工作,但当我去安装时它仍然显示404
我让我的同事使用相同的npm配置,这对他很有效。我关闭了我的终端并重新启动(以防我使用npm登录设置了一些不好的东西,作为一种理智检查),但仍然存在问题。如果我退出npm并尝试安装,我会得到401。然后我再次登录了npm
,回到了E404
我还进入了我的.gitconfig
,并注释掉了,而不是像这样:
#[url "https://"]
# insteadOf = git://
老实说,我不知道为什么会出现这种情况,但似乎值得一试,仅就这一点发表评论。从中,正确的URL应该是:
npm config set registry http://<ARTIFACTORY_SERVER_DOMAIN>:8081/artifactory/api/npm/npm-repo/
npm配置集注册表http://:8081/artifactory/api/npm/npm repo/
在您的情况下:myprivateregistry.com/api/npm/npm repo
:与您的同事(没有问题)核实他/她的.npmrc
参考资料
从OP来看,注册表端的工件有缺陷。
一种解释是,这对另一位同事没有影响,因为这位同事在他/她的本地npm缓存中有它。似乎注册表端存在一些配置问题。将此作为占位符写入。希望让注册表所有者写下他们做了什么来纠正这个问题。非常奇怪,因为它没有影响到所有人 您使用的是某种代理订单vpn吗?您使用的是与curl中相同的npm登录用户吗?听起来像是许可证thing@KeKsBoTer我和一个没有问题的同事在同一个网络上。@danf我也在考虑npm登录的问题。我觉得我已经登录了多个位置。如果我使用的是curl,这难道不意味着我是匿名的,所以任何登录都可以工作吗?我使用的是短域作为一个例子,因为真正的域是一个私人URL,我可能会在发布时遇到麻烦,即使它只能在我们的网络上访问:)我将在上面使它更现实。但是同样,使用.npmrc
意味着我不需要做npm配置集
@DaveSteinnpm配置
set配置.npmrc
。我有点困惑。然而,我让我的同事复制粘贴了我的npmrc,无论哪种方式对他都有效。@DaveStein,因此我怀疑存在身份验证问题,这意味着在您的案例中凭据设置不正确。或者您在Artifactory端的用户无权访问该npm repo。那么您认为是否存在npm bug?它说的是404,而实际上它是一个许可的东西?我的意思是,就像上面说的,如果我注销,我会得到一个401,这确实是我所期望的。我已经编辑了我的答案,并给出了可能的解释。