Skip to content

與其他 npm 客戶端不同,Bun 不會為已安裝的依賴執行任意的生命周期腳本,例如 postinstallnode-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 package
  • InvalidExe

要允許 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

請參閱 文檔 > 包管理器 > 受信任的依賴 獲取受信任依賴的完整文檔。

Bun學習網由www.bunjs.com.cn整理維護