npm包发布问题排查记录
https升级
本文章写于2021/10/14,npm在四月已经发布通知,弃用http纯文本链接,采用https链接,如果未升级,会提示E426错误,解决办法:
npm install -g https://tls-test.npmjs.com/tls-test-1.0.0.tgz
如果看见
Hello! The tls-test package was successfully downloaded and installed. Congratulations! Your package manager appears to support TLS 1.2.
则表示安装成功,如果失败了,建议npm升级到v7并且检查node版本
注册源相关
发布npm包时,请将注册源切换为npm原始的https网址!注意,是https网址!
npm config set registry=https://registry.npmjs.org
无权限403
npm ERR! publish Failed PUT 403
npm ERR! code E403
- 名字重复了,npm官网搜索排查一下
- 包名字带@,例如
@vue/cli,这里拿@vue为例解释下,@vue其实代表的是一个npm-organization名字为vue的组织,所以如果你的包名字为@husky/cli,则你需要新建一个husky的organization,新建完以后记得本地执行npm login重新登录下,这样才能成功发布
private
npm ERR! publish Failed PUT 402
npm ERR! code E402
npm ERR! You must sign up for private packages :
包的名字带@引起的,是当包名以@your-name开头时,npm publish会默认发布为私有包,但是 npm 的私有包需要付费,所以需要添加如下参数进行发布:
npm publish --access public