Npm 更新移除包的规则

  • David Iffland
  • 杜琪

2016 年 4 月 8 日

话题:JavaScriptNode.js语言 & 开发

处理完JavaScript 历史上戏剧性的事件之后,npm 公布了一版新的规则,用于应对用户试图下架包的情况。

新的规则增加如下声明:

  • 版本更新少于 24 小时的包允许下架;
  • 超过 24 小时的包的下架需要联系 npm 维护者;
  • 如果有 npm 维护者参与,npm 将检查是否有其他包依赖该包,如果有则不允下架;
  • 如果某个包的所有版本都被移除,npm 会上传一个空的占位包,以防后来的使用者不小心引用怀有恶意的替代者。

在新规则的详述文档中,npm 提供了不同场景下的几个例子说明新规则如何运作。

回顾最近的left-pad包下架事件,新规则将能阻止作者 Azer Koculu 下架他公布的包,因为这些包的版本超过 24 小时且有很多依赖。

npm 认可有下架包的权利的重要性,但是对于个体来说,对整个社区负责更加重要:

这个特性非常重要和合法,因此我们不会移除它,不过我们现在显著改变了下架包的方法和下架包的规则。这个规则是平衡开发者个人权利和维护开源社区的团结的第一步。

社区的反应各不相同,不过reddit 上的评论列表记录了新规则对开源社区的的意义。

查看英文原文:Npm Updates Policy on Removing Packages


感谢张龙对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们。

JavaScriptNode.js语言 & 开发