Skip to content

与其他 npm 客户端不同,Bun 不会为已安装的依赖执行任意的生命周期脚本,例如 postinstallnode-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 package
  • InvalidExe

要允许 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

请参阅 文档 > 包管理器 > 受信任的依赖 获取受信任依赖的完整文档。

Bun学习网由www.bunjs.com.cn整理维护