我已将 artifactory 和 npm 配置为在代理后面工作:
npm 配置集注册表 http://myserver:8081/artifactory/api/npm/npmjs
当我调用 npm info bower
时,它工作正常,但 tarball URL 已经看起来可疑:{ tarball: 'http://myserver:8081/artifactory/api/npm/npmjs/registry.npmjs.org/bower/-/bower-1.3.12.tgz', shasum: '37de0edb3904baf90aee13384a1a379a05ee214c'
npm install bower
由于错误的 tarball URL 而失败。这是我的 npm-debug.log 的相关输出:
34 silly mapToRegistry registry http://myserver:8081/artifactory/api/npm/npmjs
35 silly mapToRegistry uri http://myserver:8081/artifactory/api/npm/npmjs/bower
36 verbose addRemoteTarball http://myserver:8081/artifactory/api/npm/npmjs/registry.npmjs.org/bower/-/bower-1.3.12.tgz not in flight; adding
37 verbose addRemoteTarball [ 'http://myserver:8081/artifactory/api/npm/npmjs/registry.npmjs.org/bower/-/bower-1.3.12.tgz',
37 verbose addRemoteTarball '37de0edb3904baf90aee13384a1a379a05ee214c' ]
38 info retry fetch attempt 1 at 11:39:11
39 info attempt registry request try #1 at 11:39:11
40 http fetch GET http://myserver:8081/artifactory/api/npm/npmjs/registry.npmjs.org/bower/-/bower-1.3.12.tgz
41 http fetch 404 http://myserver:8081/artifactory/api/npm/npmjs/registry.npmjs.org/bower/-/bower-1.3.12.tgz
42 error fetch failed http://myserver:8081/artifactory/api/npm/npmjs/registry.npmjs.org/bower/-/bower-1.3.12.tgz
URL 中的 registry.npmjs.org
部分是错误的,正确的 tarball URL 应该是这个:http://myserver:8081/artifactory/api/npm/npmjs/bower/-/bower-1.3.12.tgz
。从这个 URL,我可以使用 curl 手动下载 tarball。
如果我配置有误或某处存在错误,您有什么想法吗?
Artifactory v3.4.2,npm v2.5.1
最佳答案
当应该代理 npmjs 注册表的远程存储库指向错误的 URL(例如 http://registry.npmjs .com 而不是 .org)时,就会发生这种情况。
关于node.js - NPM Install 不适用于代理后面的 Artifactory ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28672443/