1.创建npm账号
![v2-33fd4d1da04df74545d6b5280ef9c4c0_b.jpg](https://i-blog.csdnimg.cn/blog_migrate/e1bc12f165af1f44efe315b9f7ab8d23.jpeg)
2.cmd命令行到某个文件夹下,然后登录
npm login
![v2-bb73cd2d7aa211008540f44ba55fdd98_b.jpg](https://i-blog.csdnimg.cn/blog_migrate/e3014a93084260e515ffd112dd06b891.jpeg)
3.npm init填写包名,以及一些信息
![v2-b777042784275c7f55c66b4a0fba4974_b.jpg](https://i-blog.csdnimg.cn/blog_migrate/0d8d59a755795412365450f97009a36e.jpeg)
4.通过npm publish发包,然后搜一下看看是不是已经推上去了?
![v2-bfb79ae04bd82d64b8d9bf8608ba178f_b.jpg](https://i-blog.csdnimg.cn/blog_migrate/71e487e8c6524e6ab47b6e95c1d1c40e.jpeg)
5.这里要说一点,取消发布包可能并不像你想象得那么容易,这种操作是受到诸多限制的,撤销发布的包被认为是一种不好的行为
(试想一下你撤销了发布的包[假设它已经在社区内有了一定程度的影响],这对那些已经深度使用并依赖你发布的包的团队是件多么崩溃的事情!)
示例:
我现在将之前发布的包penghuwanapp撤销掉:输入npm unpublish 包名
![v2-1267558b54755743313195cce8994f0f_b.png](https://i-blog.csdnimg.cn/blog_migrate/b983c4e84b7986420706c9c63137cdd7.png)
【吐槽】注意看红框框住的字,你就知道npm官方撤销已发布的包对这种行为的态度了....
【注意】如果报权限方面的错,加上--force
再去npm搜索已经搜不到了
![v2-85f95477a106706b5d1c40846897b967_b.jpg](https://i-blog.csdnimg.cn/blog_migrate/1faa83a81afdf37346d1a32b8c90edac.jpeg)
1根据规范,只有在发包的24小时内才允许撤销发布的包( unpublish is only allowed with versions published in the last 24 hours)
2即使你撤销了发布的包,发包的时候也不能再和被撤销的包的名称和版本重复了(即不能名称相同,版本相同,因为这两者构成的唯一标识已经被“占用”了)
例如我在撤销包后尝试再发布同一名称+同一版本的包:
![v2-2ede0c80bc7c2a51e7aa22b4ad1e32ac_b.png](https://i-blog.csdnimg.cn/blog_migrate/379ac0785eef1d3081b6c19471a5b075.png)
报错,并建议我修改包的版本
npm unpublish的推荐替代命令:npm deprecate <pkg>[@<version>] <message>
使用这个命令,并不会在社区里撤销你已有的包,但会在任何人尝试安装这个包的时候得到警告
例如:npm deprecate penghuwanapp '这个包我已经不再维护了哟~'