与其他 npm 客户端不同,Bun 不会执行已安装依赖项的任意生命周期脚本,例如 postinstall 和 node-gyp 构建。这些脚本存在潜在的安全风险,因为它们可以在您的计算机上执行任意代码。
Bun 包含一个默认的精选列表,其中包含一些流行的、包含 postinstall 脚本且已知是安全的软件包。您可以在 此处 查看此列表。
如果您看到以下错误之一,您可能正在尝试使用需要 postinstall 才能正常工作的软件包
error: could not determine executable to run for packageInvalidExe
要允许 Bun 为特定软件包执行生命周期脚本,请将该软件包添加到 package.json 文件中的 trustedDependencies。您可以通过运行命令 bun pm trust <pkg> 自动完成此操作。
请注意,这仅允许 trustedDependencies 中列出的特定软件包的生命周期脚本,不包括 该依赖项的依赖项!
{
"name": "my-app",
"version": "1.0.0",
"trustedDependencies": ["my-trusted-package"]
}添加此项后,请运行一次新的安装。Bun 将重新安装您的依赖项并正确安装
rm -rf node_modulesrm bun.lockbun install有关受信任依赖项的完整文档,请参阅 文档 > 包管理器 > 受信任的依赖项。