與其他 npm 客戶端不同,Bun 不執行已安裝相依性的任意生命週期指令,如 postinstall
和 node-gyp
建置。這些指令代表潛在的安全風險,因為它們可以在您的機器上執行任意程式碼。
Bun 包含一個預設的允許清單,其中包含一些已知安全的常用套件,這些套件包含 postinstall
指令。您可以在此處查看此清單 https://github.com/oven-sh/bun/blob/main/src/install/default-trusted-dependencies.txt。
如果您看到以下錯誤之一,則可能正在嘗試使用使用 postinstall
來正常工作的套件
錯誤: 無法確定套件要運行的執行檔
InvalidExe
要告訴 Bun 允許特定套件的生命週期指令,請將該套件新增到您的 package.json 中的 trustedDependencies
中。
請注意,這僅允許特定套件中列出的生命週期指令,而不是該相依性的相依性!
{
"name": "my-app",
"version": "1.0.0",
"trustedDependencies": ["my-trusted-package"]
}
一旦添加了這個,執行一個全新的安裝。Bun 將重新安裝您的相依性並正確安裝
rm -rf node_modules
rm bun.lockb
bun install
請參閱 Docs > Package manager > Trusted dependencies 以查看受信任相依性的完整文件。