Skip to main content
默认情况下,Bun 不会为已安装的依赖执行任意生命周期脚本,例如 postinstallnode-gyp 构建。这些脚本可能带来安全风险,因为它们可以在你的计算机上执行任意代码。
Bun 包含一个热门软件包的默认允许列表,这些软件包的 postinstall 脚本已知是安全的;请参阅完整列表。它仅适用于从 npm 安装的软件包。对于来自其他来源的软件包(例如 file:link:git:github: 依赖),你必须将它们显式添加到 trustedDependencies 中。在你的 package.json 中定义 trustedDependencies替换此默认列表,而不是扩展它,因此也请列出默认列表中你仍需要其生命周期脚本的软件包。

如果你看到以下错误之一,那么你可能正在使用一个需要其 postinstall 脚本才能正常工作的​​软件包:
  • error: could not determine executable to run for package
  • ENOEXECExec format error

要允许 Bun 为特定软件包执行生命周期脚本,请将该软件包添加到 package.json 中的 trustedDependencies。你可以运行 bun pm trust <pkg> 自动完成此操作。
这只会为 trustedDependencies 中列出的特定软件包启用生命周期脚本,_不会_为该依赖的依赖启用生命周期脚本。
package.json

添加完成后,运行一次全新安装。Bun 会重新安装你的依赖并运行软件包的生命周期脚本。(bun pm trust 会立即运行这些脚本,因此不需要额外安装。)
terminal

请参阅受信任的依赖