在开发了npm包后,需要上传到npm库上,步骤一般是npm login登录,然后npm publish即可,但可能会存在一些问题。
常见错误
使用了非官方仓库
https://registry.npmmirror.com 淘宝最新镜像
会跳转页面,输入账号密码后报错,显示Public registration is not allowed
https://registry.npm.taobao.org/ 淘宝旧镜像
会显示Public registration is not allowed
这个错误主要就是你用了非官方库,切换成官方库就行
使用官方库
http://registry.npmjs.com
这个错误是新的npm不再允许使用http协议进行包上传,必须通过https才行
https://registry.npmjs.com
本机无ipv6地址,它会去找ipv4地址或dns解析时将registry.npmjs.com解析为了ipv4地址,而npm仓库仅在ipv6地址开放了443端口(有时候又会在ipv4上开放443端口,这种情况下又可以访问,具体情况需要使用telnet进行测试,如何在windows打开telnet,百度下即可),所以无法访问
原理
通过https://www.ipaddress.com/ip-lookup查看registry.npmjs.com的ip
地址,如下图所示:
使用telnet进行测试
80端口
ipv4地址
ipv6地址
都是可以通的
443端口
ipv4地址
ipv6地址
ipv4不通,ipv6是通的
解决方法
- 确保电脑有ipv6地址
使用npm login访问https://registry.npmjs.com即可,如果因为dns解析出现超时问题,在本地hosts(C:\Windows\System32\drivers\etc)里添加记录即可
2606:4700::6810:1b22 registry.npmjs.com
- 登录成功
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。