npm发包问题排查

1,165 阅读1分钟

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,则你需要新建一个huskyorganization,新建完以后记得本地执行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