Artifactory:在';处找不到npm存储库索引;NPMJ';

Artifactory:在';处找不到npm存储库索引;NPMJ';,npm,artifactory,Npm,Artifactory,我使用的是ArtifactoryPro 4.12.1。我创建了一个名为npmjs local的本地npm存储库,一个名为npmjs remote的远程npm存储库,以及一个名为npmjs的虚拟npm存储库,聚合了前两个repo 然后,我配置npm使用Artifactory作为注册表,使用: $ npm config set registry http://artifactory.example.org/artifactory/api/npm/npmjs 当我尝试使用npmsearchfoo搜索

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

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

$ npm config set registry http://artifactory.example.org/artifactory/api/npm/npmjs
当我尝试使用
npmsearchfoo
搜索包时,出现以下错误:

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
编辑:这通过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'
$curl-vhttp://artifactory.example.org:8081/artifactory/api/npm/npmjs/-/全部
*正在尝试10.1.2.3。。。
*已连接到artifactory.example.org(10.1.2.3)端口8081(#0)
>GET/artifactory/api/npm/npmjs/-/all HTTP/1.1
>主持人:artifactory.example.org:8081
>用户代理:curl/7.43.0
>接受:*/*
>
未找到

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

如果从未生成虚拟存储库的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

向发送GET请求时,您得到的响应是什么?Artifactory前面是否有HTTP代理?即使在重新为存储库编制索引后,问题仍然存在。是否检查了重新编制索引是否成功完成?您是否在日志文件中看到任何相关错误?
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