当我尝试npm publish
到Artifactory上的一个私有npm仓库时,我得到了一个Failed PUT 302错误。我按照他们的视频(https://www.youtube.com/watch?v=gyQ0riy3Hk8)中的指示,设置了一个指向www.example.com的远程仓库registry.npmjs.org,另一个是私有仓库(npm-local),以及一个聚合远程和私有仓库的虚拟仓库。
我设置了我的~/.npmrc
文件来使用Artifactory虚拟仓库,并添加了我的凭证。我可以使用这个设置来安装公共包。但是当我尝试直接发布到/npm-local时,我总是得到Failed PUT 302 -仓库响应一个通用的nginx 302 Found页面,并且npm无法解析html。
目前我使用的是npm@2.13.3,但我甚至在阅读npm publish to Artifactory not working后尝试恢复到1.4.x,也遇到了同样的问题。
我也尝试过发布一个包含package.json的目录和一个tarball --两者都产生同样的302错误。
2条答案
按热度按时间58wvjzkj1#
在几封电子邮件和一个电话之后,我找到了解决办法:
1.请登录
1.后藤管理选项卡
1.在常规设置下,将“自定义URL基础”设置为:https://YOUR_ACCOUNT_NAME.artifactoryonline.com/YOUR_ACCOUNT_NAME
他们说,他们正在为您设置默认设置,但在此之前,您必须手动设置。不幸的是,它没有记录在任何地方,也没有提到在任何视频中,我看到。
i5desfxk2#
NPM v6无法处理HTTP状态302。它将此代码处理为成功将PUT 302打印到详细输出中。例如,如果Artifactory服务器期望通过https连接并将所有请求从端口80重定向到443,则会发生这种情况。NPM v8可正确处理重定向。