與其他 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有關受信任依賴項的完整文件,請參閱 文件 > 包管理器 > 受信任的依賴項。