cnpm 登录失败,错误 409 Conflict,我是这样解决的

1,803 阅读2分钟

今天遇到一个问题,cnpm adduser 一直失败,返回 409 Conflict

我们先来看下报错信息

409 Conflict - PUT http://registry.cnpm.xxxx.com.cn/-/user/org.couchdb.user:mingyu6 - conflict

第一步 分析 http 错误码

409 Conflict:请求与服务器端目标资源的当前状态相冲突,冲突最有可能发生在对 PUT 请求的响应中。例如,当上传文件的版本比服务器上已存在的要旧,从而导致版本冲突的时候,那么就有可能收到状态码为 409 的响应。

emm 看明白了,怎么解决呢?大大的问号

第二步 baidu + google

image.png

看了排名靠前的所有网站。简单整理如下:

  1. 指向错误,我们一般会配置 taobao 镜像,在该状态下如果直接登录会出现 409 Conflict 重置下 registry 就可以了,当然这一类都是登录官方源出现的。
npm config set registry https://registry.npmjs.org
  1. 修改账户密码,过一段时间就可以解决了。(玄学)详情戳我

  2. 删除/恢复 $HOME/.npmrc, 这个一般是因为自己误操作改坏了配置文件,和第一种情况有点相似。

第三步 尝试换 registry (其实是 2 的补充

查了一圈发现,所有的问题都和 registry 相关。那么试一下将 registry 切换成 npm 的官方源会如何呢?

npm adduser
...
Logged in as xxx onhttps://registry.npmjs.org/

登录成功。

第四步 查 issue

再想一下,网上的解决方案都是针对于 npm adduser 失败,而我们的情况是 npm adduser 成功, cnpm adduser 失败,并且可以确认的是,发送登录请求的 registry 就是我们的目标地址。因此我们可以断定问题是在 cnpm 上。

素质三连:

  1. 打开 cnpm 的官方仓库
  2. search in this organization
  3. 找到相关 issue

image.png

很庆幸,找到了完全相同的issue

image.png

最后一步

找到后端,issue 丢给他。

最后的最后

看一眼胜利的截图。

image.png