與其他 npm 客戶端不同,Bun 不會為已安裝的依賴執行任意的生命周期腳本,例如 postinstall 和 node-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 packageInvalidExe
要允許 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請參閱 文檔 > 包管理器 > 受信任的依賴 獲取受信任依賴的完整文檔。