npm v12 即将到来的破坏性变更

查看原文 HN 讨论

文章摘要

GitHub 在变更日志中预告了 npm v12(预计 2026 年 7 月发布)将引入的一系列破坏性变更,核心是一组以安全为导向的默认值调整,目标是遏制日益猖獗的供应链攻击。

主要变化包括:

迁移建议:尽快升级到 npm 11.16.0 或更高版本,在常规安装时审阅警告,运行 npm approve-scripts --allow-scripts-pending 审计含脚本的包,批准受信任的包并将更新后的 package.json 提交入库,从而平滑过渡到 v12。

HN 评论精华

bastawhiz(477+ 赞):调侃自己居然没注意到 npm 已被 GitHub 收购,”一下子很多事情都说得通了”,对微软/GitHub 主导下 npm 的种种问题表示担忧。

atraac:postinstall 脚本早就该被移除,”它是 npm 包生态的毒瘤”,认为安装脚本是一个本该多年前就消除的重大安全隐患。

VMG:质疑禁用 postinstall 脚本是否真能提升安全性,因为代码迟早还是会运行,认为这一改动更像是把问题往后拖延而非根治。

hinkley:认为 npm 在微软介入之前就已经”一团糟”,微软只是让情况雪上加霜,这也解释了 Yarn、pnpm 等替代品为何兴起。

efortis:指出这次发布修复的是一个”十年前就被报告的漏洞”,凸显了 npm 在已知安全风险上长达十年的拖延。