npm包发布后能够对包进行废弃或删除操做,废弃和删除的区别在于:node
不管是废弃仍是删除,都包含两个层面:npm
废弃缘由:bash
语法:npm deprecate <pkg>[@<version>] <message>
babel
咱们以yuyy-test-pkg为例:post
npm deprecate yuyy-test-pkg@1.1.0 'test deprecate'
复制代码
执行后咱们用npm view yuyy-test-pkg versions
查看版本:spa
切换到test-my-pkg目录下,执行:3d
npm i yuyy-test-pkg@1.1.0
复制代码
运行结果:code
在test-my-pkg目录下cdn
node index.js
复制代码
结果:blog
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贡献本身的包了,在开源方面又多了一条很重要的途径。
最后,我想说,做为一个开发者,咱们每一个人有责任和义务维护每个社区的纯净,因此在发布npm包的时候应该尽可能精益求精,避免发一些没有价值的东西给其余人形成困扰。构建美好生态,人人有责。
相关文章: