Bun

指南套件管理員

使用 Bun 新增受信任的相依性

與其他 npm 客戶端不同,Bun 不執行已安裝相依性的任意生命週期指令,如 postinstallnode-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 以查看受信任相依性的完整文件。