首页
学习
活动
专区
圈层
工具
发布
技术百科首页 >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
7130
JavaScript 是如何工作的:WebRTC 和对等网络的机制!
WebRTC,名称源自网页即时通信(英语:Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的API。
前端小智@大迁世界
2019-03-15
3.5K0
组件加载器的错误处理机制是如何工作的?
组件加载器的错误处理机制设计得相当完善,能够捕获和处理组件加载过程中可能出现的各种异常情况。其核心工作原理如下:
搜罗万相
2025-09-17
4240
TypeScript是如何工作的
TypeScript 是一门基于 JavaScript 拓展的语言,它是 JavaScript 的超集,并且给 JavaScript 添加了静态类型检查系统。TypeScript 能让我们在开发时发现程序中类型定义不一致的地方,及时消除隐藏的风险,大大增强了代码的可读性以及可维护性。相信大家对于如何在项目中使用 TypeScript 已经轻车熟路,本文就来探讨简单探讨一下 TypeScript 是如何工作的,以及有哪些工具帮助它实现了这个目标。
ConardLi
2021-09-29
8.1K0
HTTPS是如何工作的?
HTTPS(Hypertext Transfer Protocol Secure)是HTTP(Hypertext Transfer Protocol)的安全版本,用于在用户的Web浏览器和网站之间传输数据。HTTPS在传输过程中对数据进行加密,提供了一个安全且私密的通信通道。以下是HTTPS的工作原理的简化解释:
coderidea
2024-02-22
2.4K0
点击加载更多
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
领券