代码改变世界

整理一下在 npmjs.com 上面发布资源包踩过的坑

2021-10-25 15:41  金色海洋(jyk)  阅读(532)  评论(0编辑  收藏  举报

正常流程就不说了,网上有很多,比如写代码、打包、注册、登录、发布等。

邮箱要激活

在 npmjs.com 上面注册账号的时候需要填写邮箱,然后登录网址的时候并没有强制要求你去邮箱激活。

但是到了发布资源包的时候,如果还没有去邮箱激活的话,就会报错。

具体出错信息记不清了,好像有 email 的字样。反正总之,先到邮箱里看看,找到npmjs.com 发的那封邮件,按照要求操作一下,就可以了。

不能和现有的资源包重名。

npmjs.com 上面的资源包的名称,按照先下手为强的原则,我先用这个名称发布了,那么这个名称就是我的,别人就不能用。所以想到了好名字,要先去占个坑。

版本号要更新。

每次发布的时候,版本号都需要升级一下,否则会报错。

OTP、Modify 2FA

发第一个包的时候,登录后(验证账号和密码)就可以发布了,但是当我发布第二个包的时候却报错了。

折腾了半天终于弄明白了,原理 npmjs.com 感觉只验证用户名和密码不够安全,怕被盗号,所以又加了一道锁。

这道锁类似于银行的U盾,当然不需要我们弄硬件设备,只需要在手机里面下载一个APP,然后扫 npmjs.com 里面的一个二维码,然后绑定上即可。

之后再做关键性操作的时候,就需要打开手机APP,找到六位验证码,输入后即可。比如登录、发布资源包等操作。

TLS1.2、E426、https

十月初发布资源包,又出现 E426 的错误,郁闷。

npm ERR! code E426
npm ERR! 426 Upgrade Required - PUT http://registry.npmjs.org/nf-state

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\jyk00\AppData\Local\npm-cache\_logs\2021-10-08T04_52_56_113Z-debug.log

这次又是一次安全级别的提升,以前要求比较宽泛,现在要求更严格了,需要采用TLS1.2 的方式来发布。

然后找资料吧,各种找,一个比一个专业,比如升级 npm 的版本云云。但是还是报E426的错误。

最后在一次刷知乎的时候,终于找到了原因,就是修改 registry 的时候要使用 https。之前用的是http。

npm config set registry=https://registry.npmjs.org

想一想还是自己的错,一个是基础知识不扎实,不知道 TLS 和 https 是啥关系,另外出错信息也没有仔细看,或者说,因为看不懂而忽略了重要信息。

2