为什么卷曲可以200时npm说404

时间:2018-07-20 18:59:46

标签: npm artifactory

我在myscope:registry=https://myprivatedomain.com/artifactory/api/npm/npm-myregistry-release/文件中添加了.npmrc之类的注册表。

当我执行npm install @myscope/mypackage时,它显示404 Not Found。当我列出调试日志时,它会显示错误7 http fetch GET 404 https://myprivatedomain.com/artifactory/api/npm/npm-myregistry-release/@myscope%2fmypackage 1463ms,这很奇怪,因为如果执行curl https://myprivateregistry.com/@myscope%2fmypackage,则会看到响应。知道我可能配置有误吗?

在卷曲上使用-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 search @myscope,却一无所获。然后,我将.npmrc更新为registry=https://myprivatedomain.com/artifactory/api/npm/npm-myregistry-release/并运行了搜索。我看到了包裹。尽管现在可以进行搜索,但是在我安装时仍然显示404。

我让我的同事使用相同的npm配置,它对他有用。我关闭了终端,然后重新启动(以防万一,我使用npm login设置了某些问题,以进行健全性检查),仍然有问题。如果我执行npm logout并尝试安装,则会得到401。然后再次执行npm login并返回到E404

我也进入.gitconfig并像这样注释掉insteadOf

#[url "https://"]
#       insteadOf = git://

老实说,不确定为什么会出现在其中,但似乎值得为此一枪而已。

2 个答案:

答案 0 :(得分:0)

official Artifactory documentation中,正确的URL应该是:

npm config set registry http://<ARTIFACTORY_SERVER_DOMAIN>:8081/artifactory/api/npm/npm-repo/

在您的情况下:myprivateregistry.com/api/npm/npm-repo:与您的同事(没有问题)核对他/她的.npmrc引用了什么。

在OP中,注册表端的工件存在缺陷。
一种解释说,不会影响另一位同事,据说该同事将其保存在他/她的本地npm缓存中。

答案 1 :(得分:0)

注册表的末尾似乎存在一些配置问题。写一个占位符。希望让注册表所有者写出他们所做的纠正工作。非常奇怪,因为它没有影响到所有人。