Nodejs left-pad 事件后很多人说 npm 完了,现在呢?

Nodejs left-pad 事件后很多人说 npm 完了,现在呢?

显然 npm 公司的做法非常恶心人,当时舆论观点很多认为开源社区会重造一个轮子代替 npm ,结果到现在这件事的影响似乎烟消云散了啊…不允许 unpublish 似乎并没有任何影响?

所以,就算忍气吞声了? js 社区还真是……

7 回复

直接存到 GitHub 上,也不发布到 npmjs.org 。反正 npm 也能从 GitHub 上装。


重新造轮子代价太大了。需要再来 4 5 次这种事件。

从 github 上装没法指定版本吧? golang 就是直接装的 github ,难用的一比啊…

golang 是可以指定版本的,虽然我也同意难用的一比…

没人那样做

composer 的版本就是取的 git 的 tag ,感觉 composer 还是蛮好用的,如果没有 wall 的话

针对Node.js的left-pad事件及其对npm(Node Package Manager)的影响,我们可以从以下几个角度进行分析:

首先,left-pad事件确实在当时引起了轩然大波。一个开发者删除了自己开源的left-pad包,导致许多依赖此包的Node.js项目突然无法运行。这暴露了npm在包管理和依赖解析上的一些脆弱性,如缺乏有效的镜像和备份机制。

然而,自那以来,npm及其生态系统已经发生了显著的变化。npm团队加强了包的版本控制和依赖管理,引入了更多的安全措施,如双重认证(2FA)和更严格的包发布审核流程。

此外,npm还增加了对包的镜像支持,允许开发者设置备用的包源,以防主源出现问题。这大大增强了系统的健壮性和可靠性。

以下是一个简单的Node.js代码示例,展示了如何使用npm的备用源(假设我们使用一个名为my-registry的镜像):

// 在.npmrc文件中配置镜像源
// registry=https://my-registry.com/

const npm = require('npm');
npm.config.set('registry', 'https://my-registry.com/');

npm.load(function(err) {
  if (err) return console.error(err);
  npm.commands.install(['left-pad'], function(err, data) {
    if (err) return console.error(err);
    console.log('Installed left-pad successfully!');
  });
});

综上所述,虽然left-pad事件给npm带来了一定的挑战,但npm团队已经采取了一系列措施来加强其安全性和可靠性。现在的npm已经更加成熟和稳定,依然是Node.js开发者不可或缺的包管理工具。

回到顶部