即将到来的 NPM v12 重大变更
我们下一个 npm 主要版本 v12 引入了与安全相关的默认更改到 npm install 。所有这些更改在今天 npm 11.16.0 或更高版本中都有警告提示,您可以在升级之前做好准备。v12 预计将在 2026 年 7 月发布。每个更改将当前自动运行的 npm install 行为变为需要您明确选择的行为:allowScripts 默认为关闭:npm install 将不再自动执行依赖项的 preinstall、install 或 postinstall 脚本,除非在您的项目中明确允许。这包括原生的 node-gyp 构建(即,没有明确安装脚本的 package 与 binding.gyp 仍会被阻止,因为 npm 会为其运行隐式的 node-gyp 重建)。来自 git、file 和 link 依赖项的 prepare 脚本也将以相同方式被阻止。要查看哪些会被阻止,请运行 npm approve-scripts --allow-scripts-pending 。然后使用 npm approve-scripts 允许您信任的软件包,并使用 npm deny-scripts 阻止其他软件包。生成的允许列表将写入 package.json,应该被提交。如果您的安装例程运行脚本,您可以在 npm 11.16.0+ 中观察到警告。--allow-git 默认为无:npm install 将不再解析 Git 依赖项(直接或传递),除非通过 --allow-git 明确允许。这关闭了一个代码执行路径,其中 Git 依赖项的 .npmrc 可能覆盖 Git 可执行文件,即使是 --ignore-scripts 。此更改在 2026-02-18 已经宣布,并在 npm 11.10.0+ 中可用。--allow-remote 默认为无:npm install 将不再解析来自远程 URL 的依赖项,例如 https tarballs(直接或传递),除非通过 --allow-remote 明确允许。此标志在 npm 11.15.0+ 中可用。相关的 --allow-file 和 --allow-directory 标志在 v12 中不会更改其默认值。如何准备 升级到 npm 11.16.0 或更高版本,运行您的常规安装,并查看警告。使用 npm approve-scripts --allow-scripts-pending 查看哪些软件包有脚本,批准您信任的那些,然后提交更新后的 package.json 。之后,只有您批准的脚本在升级后继续运行。您留下的未批准的部分将停止。更多详细信息可在我们的文档中找到,相关链接为 npm approve-scripts ,npm deny-scripts 和 allow-scripts 配置(适用于 npx 和全局安装)。请在我们的社区讨论中分享您的意见和问题。订阅我们的开发者通讯 在我们的双周通讯中发现专门为开发者准备的技巧、技术指南和最佳实践。回到顶部
本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。
☕请我喝杯咖啡