Nodejs 关于 npm left-pad 事件

发布于 1周前 作者 sinazl 来自 nodejs/Nestjs

Nodejs 关于 npm left-pad 事件
其实事情很明白:
kik 作者收到律师邮件,措辞很恶心,所以回复了 no
律师跟 npm 管理层接触
npm 管理层换了管理权
kik 作者很生气,下架了自己的包
然后你们都懂了

npm 的管理团队明显经验不足。
好好的 kik 包就因为所谓的权威律师给干掉了,作者的心寒可以理解,是我也关了自己所有的项目。

5 回复

npm 的管理团队明显经验不足
那更好的处理方式是什么呢


转移管理权起码要获得作者本人的同意吧,所以我觉得 npm 官方首先应该出面和作者进行协商

有一点我不明白
律师凭什么说 kik 作者侵权?

kik 这三个英文字母被律师的委托公司买下来了吗?


美国的法律对此类事件是这么划分的?

npm 如果一开始就使用完整路径作为包名( author/package ),稳妥点就不会有这问题了,省掉一个单词惹出这么大麻烦。

关于Node.js中的npm left-pad事件,这是一个著名的示例,展示了开源社区中依赖项管理和版本控制的重要性。2016年,一个开发者删除了其npm包left-pad,导致许多依赖于该包的Node.js项目突然失效,因为npm默认不会保存旧版本的备份。

left-pad是一个简单的字符串填充函数,用于在字符串左侧填充指定的字符直到达到指定的长度。以下是一个left-pad函数的简单实现:

function leftPad(str, length, padChar = ' ') {
    while (str.length < length) {
        str = padChar + str;
    }
    return str;
}

console.log(leftPad('5', 10)); // 输出: "       5"

为了避免此类事件再次发生,npm采取了一些措施,包括:

  1. 弃用警告:当包的作者想要删除一个包时,npm现在会将该包标记为已弃用,而不是直接删除。
  2. 版本锁定:使用package-lock.jsonyarn.lock文件来锁定依赖项的确切版本,确保即使原始包被删除或更改,项目也能使用相同的版本。
  3. 镜像源:使用如cnpm、taobao npm镜像等国内镜像源,这些源通常会保留已删除包的副本。

总之,left-pad事件提醒我们,依赖项管理在软件开发中至关重要,合理的版本控制和备份策略是保障项目稳定性的关键。

回到顶部