今天在学习npm自定义包时发现第一次第一次上传正常,但是第二次上传包时出现了ERR400错误。
总结一下当时的操作
- 构建完自己的包
- npm login登录
- npm publish上传
- 打开npmjs官网 查看自己上传的文件
- 在packages栏里删除掉刚上传的包
- 回到编译器修改了一些数据
- 再次npm publish上传
- 出现ERR CODE 400报错
然后一直没找到问题所在,网上有人说是源的问题,但经过测试发现400错误跟镜像源没关系。
最终解开疑惑:
因为在npmjs有这样的规定:
上传一个包后可以在24h内删除
删除一个包后在24h内不能再次上传相同包
所以解决方案就是
修改json文件中的name属性和version属性 再上传(错误)
emm…又试了几遍,发现原因是包名不能有大写字符
根据规范,只有在发包的24小时内才允许撤销发布的包( unpublish is only allowed with versions
published in the last 24 hours),需要我们发邮件给官方来删除
即使你撤销了发布的包,发包的时候也不能再和被撤销的包的名称和版本重复了(即不能名称相同,版本相同,因为这两者构成的唯一标识已经被“占用”了)