npm包发布后可以对包进行废弃或删除操作,废弃和删除的区别在于:
- 废弃不会将包或版本从npm仓库删除,仍然可以继续下载安装,并在安装的时候会有警示
- 删除会将包从npm彻底删除,无法被下载安装
无论是废弃还是删除,都包含两个层面:
- 版本的废弃/删除
- 包的废弃/删除
一、废弃
废弃原因:
- 版本:鼓励用户更新最新版本
- 包:此包内容已经过时,没有了维护的价值
第一步:废弃指定版本
语法:npm deprecate <pkg>[@<version>] <message>
我们以djf-test-pkg为例:
npm deprecate @duanjiefei/babel@1.2.0 'test deprecate'
返回npm官网查看此时已红色提示该package已经废弃
执行后我们用npm view @duanjiefei/babel versions
查看版本:
记录的版本号并无变化。
第二步:安装废弃版本
切换到test-my-pkg目录下,执行:
npm i @duanjiefei/babel@1.2.0
运行结果:
第三步:运行index.js
在test-my-pkg目录下
node index.js
结果:
所以,废弃的包除了安装时会有警示,并不影响使用。
二、删除
npm不鼓励任何形式的删除,主要因为我们发布的包可能已经被其他人引用,如果我们删除了此包,其他人在重新安装含有我们包的依赖的工程时,出现找不到包问题。
基于此,npm做了相关的删除限制:
- 删除的版本24小时后方可重发!
- 只有发布72小时之内的包可以删除!
第一步:删除发布的包
我们之前在《npm发布包教程(二):发布包》发布的包仅为演示所用,为保持npm仓库的纯净,我们都删除掉:
npm unpublish djf-test-pkg --force
npm unpublish @duanjiefei/babel --force
第二步:去官网查找
第三步 切换到test-my-pkg目录下,先将两个包卸载:
npm rm djf-test-pkg @duanjiefei/babel
结果:
已经删除的包无法再安装。
至此,我们完成npm包的整个生命周期的演示过程,大家可以开源的道路上又多了一条很重要的道路。文章来源:https://www.toymoban.com/news/detail-733766.html
最后,我觉得作为一个开发者,我们有责任和义务维护每一个社区的纯净,所以在发布npm包的时候应该尽量精益求精,避免发一些没有价值的东西给其他人造成困扰。构建美好生态,人人有责。文章来源地址https://www.toymoban.com/news/detail-733766.html
到了这里,关于npm发布包教程(五):废弃/删除的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!