Artifactory:在'npmjs'找不到npm存储库索引

时间:2016-12-06 14:00:43

标签: npm artifactory

我正在使用Artifactory Pro 4.12.1。我创建了一个名为npmjs-local的本地npm存储库,一个名为npmjs-remote的远程npm存储库,以及一个名为npmjs的虚拟npm存储库,聚合了前两个存储库。

然后我配置npm使用Artifactory作为注册表,使用:

$ npm config set registry http://artifactory.example.org/artifactory/api/npm/npmjs

当我尝试使用npm search foo搜索包时,出现以下错误:

npm WARN Building the local index for the first time, please be patient
npm ERR! registry error parsing json
npm ERR! Darwin 15.6.0
npm ERR! argv "/usr/local/Cellar/node/7.2.0/bin/node" "/usr/local/bin/npm" "search" "foo"
npm ERR! node v7.2.0
npm ERR! npm  v3.10.9

npm ERR! Unexpected token C in JSON at position 0
npm ERR! Cannot find the npm repository index at 'npmjs'
npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR!     <https://github.com/npm/npm/issues>

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/dserodio/npm-debug.log

我使用--loglevel verbose运行相同的搜索,我看到“无效的JSON”来自http://artifactory.example.org/artifactory/api/npm/npmjs/-/all

Cannot find the npm repository index at 'npmjs'

编辑:这种情况通过Nginx代理发生,直接发生在Artifactory上。这是完整的HTTP响应:

$ curl -v http://artifactory.example.org:8081/artifactory/api/npm/npmjs/-/all
*   Trying 10.1.2.3...
* Connected to artifactory.example.org (10.1.2.3) port 8081 (#0)
> GET /artifactory/api/npm/npmjs/-/all HTTP/1.1
> Host: artifactory.example.org:8081
> User-Agent: curl/7.43.0
> Accept: */*
>
< HTTP/1.1 404 Not Found
< Server: Artifactory/4.12.1
< X-Artifactory-Id: b0f4dd7e3f5106cd:-3efe7253:158c0a36030:-7ffd
< Content-Type: application/json
< Transfer-Encoding: chunked
< Date: Tue, 06 Dec 2016 16:35:01 GMT
<
* Connection #0 to host artifactory.example.org left intact
Cannot find the npm repository index at 'npmjs'

可能导致此错误的原因是什么?

1 个答案:

答案 0 :(得分:2)

如果从未生成虚拟存储库的NPM索引,则会发生这种情况。

解决问题的最佳方法是重新索引存储库,这可以使用REST API完成:

curl -uadmin:password -XPOST http://artifactory.example.org:8081/artifactory/api/npm/npmjs/reindex

REST调用将触发异步索引过程,可以使用Artifactory日志文件进行监视。您应该看到以下消息:

2016-12-07 13:11:02,455 [http-nio-8081-exec-5] [INFO ] (o.a.a.n.r.NpmRequestHelper:124) - Recalculating index for npm repository npmjs scheduled to run
2016-12-07 13:12:02,527 [art-exec-102209] [INFO ] (o.a.a.n.NpmServiceImpl:237) - Npm metadata recalculation has been started for repository 'npmjs'
2016-12-07 13:13:31,071 [art-exec-102209] [INFO ] (o.a.a.n.NpmServiceImpl:263) - Finished npm metadata recalculation for repo 'npmjs' in 1.48 minutes