共计 1027 个字符,预计需要花费 3 分钟才能阅读完成。
npm 包发布后可以对包进行废弃或删除操作,废弃和删除的区别在于:
废弃不会将包或版本从 npm 仓库删除,仍然可以继续下载安装,并在安装的时候会有警示
删除会将包从 npm 彻底删除,无法被下载安装
无论是废弃还是删除,都包含两个层面:
版本的废弃 / 删除
包的废弃 / 删除
一、废弃
废弃原因:
版本:鼓励用户更新最新版本
包:此包不再有维护的价值
第一步:废弃指定版本语法:npm deprecate <pkg>[@<version>] <message>
我们以 yuyy-test-pkg 为例:
npm deprecated yuyy-test-pkg@1.1.0 ‘test deprecate’
执行后我们用 npm view yuyy-test-pkg versions 查看版本:
记录的版本号并无变化。
第二步:安装废弃版本切换到 test-my-pkg 目录下,执行:
npm i yuyy-test-pkg@1.1.0
运行结果:
第三步:运行 index.js 在 test-my-pkg 目录下
node index.js
结果:
废弃的包除了安装时会有警示,并不影响使用。
二、删除
npm 不鼓励任何形式的删除,主要因为我们发布的包可能已经被其他人引用,如果我们删除了此包,其他人在重新安装含有我们包的依赖的工程时,出现找不到包问题。
基于此,npm 做了相关的删除限制:
删除的版本 24 小时后方可重发!
包发布 72 小时之内才可删除!
第一步:删除发布的包我们之前在《npm 发布包教程(二):发布包》发布的包仅为演示所用,为保持 npm 仓库的纯净,我们都删除掉:
npm unpublish yuyy-test-pkg –force
npm unpublish @yuyy/babel –force
第二步:去官网查找
第二步切换到 test-my-pkg 目录下,先将两个包卸载:
npm rm yuyy-test-pkg @yuyy/babel
结果:
然后再重新安装:
npm i yuyy-test-pkg @yuyy/babel
结果:
已经删除的包无法再安装。
至此,我们完成 npm 包的整个生命周期的演示过程,大家可以开源的道路上又多了一条很重要的道路。不过,我觉得作为一个开发者,我们有责任和义务维护每一个社区的纯净,所以在发布 npm 包的时候应该尽量精益求精。
相关文章:1.《npm 发布包教程(一):从 npm 说起》2.《npm 发布包教程(二):发布包》3.《npm 发布包教程(三):安装发布包》4.《npm 发布包教程(四):迭代》5.《npm 发布包教程(五):废弃 / 删除》