排错
修复 DSH 的 ERR_PNPM_IGNORED_BUILDS
ERR_PNPM_IGNORED_BUILDS 表示依赖构建脚本被阻止,不等于 DSH 插件本身已经损坏。
01
先确认哪个依赖被阻止
保留完整 pnpm 输出,找出请求运行构建脚本的包。不要为了消除提示而批准所有包。
- 用 pnpm ignored-builds 查看阻止列表
- 与插件 lockfile 核对包名
- 批准前检查该包的来源仓库
02
只批准已核对的最小集合
人工核对后再使用 pnpm approve-builds 或明确的 allowBuilds 策略。把策略变更提交进版本控制,确保构建可复现。
- 不要批量放行
- 策略变化后重新安装
- 保留原始错误便于回滚
核对来源
来源用于核对当前事实,不代表来源方认可本站结论。
ERR_PNPM_IGNORED_BUILDS常见问题
ERR_PNPM_IGNORED_BUILDS 是什么意思?
pnpm 发现有依赖想执行安装脚本,于是拒绝执行,因为任意安装脚本正是包安装环节最主要的供应链风险。这是安全默认行为,不代表这个 DSH 插件坏了。
能不能全部批准让 ERR_PNPM_IGNORED_BUILDS 消失?
能,但不该这么做。一次性放行会执行每一个依赖的安装脚本,包括你从没选过的传递依赖,只批准你真正看过的那几个包。
怎么看到被阻止的是哪些包?
在安装失败的同一个目录里执行 pnpm ignored-builds,它会打印准确的包名。拿这份名单和插件的 lockfile 对照之后再做决定。
不批准构建,插件还能用吗?
有时候能。只用于可选原生加速的包不构建也能加载,必须编译出二进制的则不行。先直接试插件,真失败了再批准。
出现 ERR_PNPM_IGNORED_BUILDS 说明插件不安全吗?
不说明。任何带构建脚本的依赖都会触发这个警告,它跟插件自身代码无关。把它当成「该看一眼」的提示,不是结论。