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