与其他 npm 客户端不同,Bun 不会为已安装的依赖执行任意的生命周期脚本,例如 postinstall 和 node-gyp 构建。这些脚本代表潜在的安全风险,因为它们可以在你的机器上执行任意代码。
NOTE
Bun 包含一个包含已知安全的 `postinstall` 脚本的流行包的默认允许列表。你可以 在 [这里](https://github.com/oven-sh/bun/blob/main/src/install/default-trusted-dependencies.txt) 查看此列表。如果你看到以下错误之一,你可能正在尝试使用使用 postinstall 才能正常工作的包:
error: could not determine executable to run for packageInvalidExe
要允许 Bun 为特定包执行生命周期脚本,请将包添加到你的 package.json 文件中的 trustedDependencies。你可以通过运行命令 bun pm trust <pkg> 自动执行此操作。
NOTE
请注意,这仅允许 `trustedDependencies` 中列出的特定包的生命周期脚本,_而不是_ 该依赖的依赖!json
{
"name": "my-app",
"version": "1.0.0",
"trustedDependencies": ["my-trusted-package"]
}添加此之后,运行全新安装。Bun 将重新安装你的依赖并正确安装
sh
rm -rf node_modules
rm bun.lock
bun install请参阅 文档 > 包管理器 > 受信任的依赖 获取受信任依赖的完整文档。