- Published on
记一次npm adduser报错的经过
- Authors

- Name
- 薯仔
- @Henry_Yangs
自从年初换了电脑之后,就再也没有维护过之前发布的npm包了。直到最近“心血来潮”想更新一下,结果在吭哧吭哧写完代码之后,“潇洒地”在终端里输入npm publish,然后就就报错了:

当时就懵圈了,我,不是一直用的这个账户么,为啥还要adduser?但是没办法,还是先去官网看看到底是哪个用户。在经过一系列密码找回操作之后,终于知道是哪个用户了,但是在执行npm adduser并输入用户名密码之后又双叒叕报错了:

这下差点崩溃了。不过在仔细看了下报错信息之后,很明显地可以看到此时请求的源是淘宝的npm镜像源。话不多说,赶紧敲命令:
npm config set registry http://registry.npm.org/
修改了npm源之后再次执行npm adduser,结果又打印出了第一张图的内容。此时,我的心态已经接近彻底崩溃的边缘(毕竟这个问题肯定在“重试重启重装重买”大法前两个可以搞定的)。
怀着以后再也当不了自己的npm包的维护者的心态,搜到了一篇标题和我的问题相似但是内容貌似完全对不上的文章[1]。
粗略地翻看之后,发现作者用到了npm config ls -l这个我在npm世界只认识前面一半的命令(毕竟,熟悉npm可以让我看懂前一半,了解Linux可以让我看懂后一半,只是没想到npm也支持这样的命令参数)。
Anyway,先试一下然后在打印出来的内容中找一下那篇文章中说到的几个字段,看下值是什么。
...在过了三分钟之后,终于有了一个惊人的发现,把npm源恢复的命令应该是:
npm config set registry https://registry.npmjs.org
其实没啥区别,只是把https写成了http...

在重新更新了npm源之后,再次潇洒地输入npm publish并按下回车键的时候,只有在代码界最闪闪惹人爱的草原绿终于出现了图片
这次小意外让我意识到了:
一般没啥事最好还是不要更改npm源,除非所在的网络环境对默认的npm极为不友好
如果自己有维护npm包,那么在发版的时候一定记得切回默认的npm源
Last but not the least,即便是一个小小的s有时候也能造成代码上的蝴蝶效应(这已经不是第一次被s坑了图片)
参考链接