记一次npm发包失败的经历

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34149935/article/details/82909162

前言

早就注册了npm,就发布了一版测试包,搁置到此,最近想封装一些常用组件,发布到npm上面,也算是一种技术储蓄了。

从昂首挺胸到灰头土脸

正常的发布流程其实很简单:

  • 注册个npm账号
  • 本地使用npm登录npm login,填写用户名、密码、邮箱完成登录
  • 在待发布的文件内执行npm publish,即可完成npm包的发布

按照这个流程,直接登录就可以了,之前我已注册完成了,直接npm login后输入信息,回车。

Registry returned 409 for PUT on https://registry.npm.taobao.org/-/user/org.couchdb.user:1091214370: conflict

我自己登录自己的账号,你还跟我报冲突!!!!!

根据提示去看日志,

6 http request → POST http://r.cnpmjs.org/-/v1/login
7 http 404 ← Not Found (http://r.cnpmjs.org/-/v1/login)

在npm的github的issue里面看到了两种导致问题出现的原因:

  1. .npmrc文件内容改动
  2. node.js的8.0版本的bug

修改.npmrc文件内容:

https://registry.npmjs.org/

直接卸载node装最新的也可以,不过有点暴力。

继续执行npm login,填完信息很顺利的看到了Logged in as 1091214370 on https://registry.npmjs.org/.,说明我已经登录成功了,下面执行发布吧npm publish

跌倒不可怕,站起来接着跌倒呗。

You do not have permission to publish "xc". Are you logged in as the correct user? : xc

看到了403和日志输出,我自己的包我没有权限?
好吧我错了,这包的名字被人占用了,我换个名字吧。

更换名称xc为choicesaas,再次发布。

看到最后一行日志打印的内容,即表示发布成功了,一波三折。。。。。

吐槽

npm的重名校验逻辑不清晰呀,好歹提示下存在重名包呀!

猜你喜欢

转载自blog.csdn.net/qq_34149935/article/details/82909162