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