Nodejs left-pad 事件后很多人说 npm 完了,现在呢?
Nodejs left-pad 事件后很多人说 npm 完了,现在呢?
显然 npm 公司的做法非常恶心人,当时舆论观点很多认为开源社区会重造一个轮子代替 npm ,结果到现在这件事的影响似乎烟消云散了啊…不允许 unpublish 似乎并没有任何影响?
所以,就算忍气吞声了? js 社区还真是……
直接存到 GitHub 上,也不发布到 npmjs.org 。反正 npm 也能从 GitHub 上装。
重新造轮子代价太大了。需要再来 4 5 次这种事件。
从 github 上装没法指定版本吧? golang 就是直接装的 github ,难用的一比啊…
golang 是可以指定版本的,虽然我也同意难用的一比…
没人那样做
针对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开发者不可或缺的包管理工具。