首页
学习
活动
专区
圈层
工具
发布
技术百科首页 >pnpm >pnpm 的 onlyBuiltDependencies 安全机制是如何工作的?

pnpm 的 onlyBuiltDependencies 安全机制是如何工作的?

词条归属:pnpm

1. 默认禁用构建脚本

pnpm v10 起引入安全机制,默认禁用所有依赖的生命周期脚本(preinstall、install、postinstall 等)。当未配置任何构建策略时,pnpm 将 onlyBuiltDependencies 设为空数组,阻止所有包在安装阶段执行脚本,从而防范通过恶意 postinstall 脚本发起的供应链攻击。

2. 显式允许列表

若项目确实需要运行特定包的构建脚本(如 esbuild、core-js、原生模块编译等),可在 pnpm-workspace.yaml 中通过 allowBuilds 字段显式声明允许的包名。pnpm v10.26.0 起引入的 allowBuilds 字段提供了更细粒度的控制,支持按包名和版本范围分别设置允许或拒绝;pnpm v11 起,onlyBuiltDependencies 等旧字段已被 allowBuilds 取代。首次安装时,pnpm 会交互式提示用户确认需要运行脚本的包,并将选择写入配置文件。

3. 严格模式与版本锁定

当 strictDepBuilds 设为 true 时,若发现未审核的构建脚本,安装将直接以非零退出码失败,而非仅打印警告。此外,onlyBuiltDependencies 支持精确版本锁定(如 esbuild@0.25.1)和版本范围(如 nx@21.6.4 || 21.6.5),确保只有指定版本的包能够执行脚本,防止通过版本升级引入未授权脚本执行。

相关文章
Hadoop 的 Checkpoint 机制是如何工作的?如何优化 Checkpoint 的频率?
Hadoop 的 Checkpoint 机制主要用于维护文件系统的元数据一致性,防止因 NameNode 故障导致的数据丢失。Checkpoint 主要通过 Secondary NameNode(在 Hadoop 2.x 及以后的版本中,这个角色可以由 Checkpoint Node 或 Standby NameNode 承担)来实现。
代码小李
2025-01-23
6650
JavaScript 是如何工作的:WebRTC 和对等网络的机制!
WebRTC,名称源自网页即时通信(英语:Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的API。
前端小智@大迁世界
2019-03-15
3.5K0
组件加载器的错误处理机制是如何工作的?
组件加载器的错误处理机制设计得相当完善,能够捕获和处理组件加载过程中可能出现的各种异常情况。其核心工作原理如下:
搜罗万相
2025-09-17
3970
Goroutine是如何工作的
在golangweekly的第36期Go Newsletter中我发现一篇短文"How Goroutines Work" ,其作者在参考了诸多资料后,简短概要地总结了一下 Goroutine的工作原理,感觉十分适合刚入门的Gophers(深入理解Goroutine调度的话,可以参考Daniel Morsing的" The Go scheduler" )。这里粗译如下。 一、Go语言简介 如果你是Go语言新手,或如果你对"并发(Concurrency)不是并行(parallelism)"这句话毫无赶脚,那么请
李海彬
2018-03-19
4.1K0
JavaScript 是如何工作的🔥 🤖 [视觉解释]
JavaScript 是世界上最受欢迎和最讨厌的语言之一。它被爱,因为它是有效的。您只需学习 JavaScript 即可制作全栈应用程序。它也被讨厌,因为它以出乎意料和令人不安的方式行事,如果您不投入理解该语言,可能会让您讨厌它💔。 这篇博客将解释 JavaScript 如何在浏览器中执行代码,我们将通过动画 gif 来学习它😆。看完这篇博文,你离成为Rockstar开发者又近了一步🎸😎 执行上下文 “ JavaScript 中的一切都发生在一个执行上下文中。” 我希望每个人都记住这句话,因为它是必不可
玖柒的小窝
2021-09-12
4.6K0
点击加载更多
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
领券