import Patch from "/snippets/cli/patch.mdx";
bun patch 讓你以可維護、git 友好的方式持久化修補 node_modules。
有時,你需要對 node_modules/ 中的包進行小改動以修復 bug 或添加功能。bun patch 使你可以輕松完成此操作,而無需將整個包 vendoring,並可在多次安裝、多個項目和多台機器上重用修補程序。
功能:
- 生成
.patch文件,在安裝時應用於node_modules中的依賴 .patch文件可以提交到你的倉庫,在多次安裝、項目和機器上重用package.json中的"patchedDependencies"跟蹤已修補的包bun patch讓你修補node_modules/中的包,同時保持 Bun 全局緩存 的完整性- 使用
bun patch --commit <pkg>在提交前本地測試你的更改 - 為節省磁盤空間並保持
bun install快速,修補的包會提交到全局緩存並在可能時跨項目共享
步驟 1. 准備包進行修補
首先,使用 bun patch <pkg> 准備包進行修補:
bash
# 你可以提供包名
bun patch react
# ...如果有多個版本安裝,可以提供精確版本
bun patch react@17.0.2
# 或者提供包的路徑
bun patch node_modules/react注意
不要忘記調用 bun patch <pkg>!這確保 node_modules/ 中的包文件夾包含包的新鮮副本,沒有指向 Bun 緩存的符號鏈接/硬鏈接。 如果你忘記這樣做,你可能最終會在全局緩存中編輯包!
步驟 2. 本地測試你的更改
bun patch <pkg> 使直接編輯 node_modules/ 中的 <pkg> 變得安全,同時保持 Bun 全局緩存 的完整性。這是通過在 node_modules/ 中重新創建包的未鏈接克隆,並將其與全局緩存中的原始包進行差異比較來實現的。
步驟 3. 提交你的更改
一旦你對更改滿意,運行 bun patch --commit <path or pkg>。
Bun 將在 patches/ 中生成修補文件,更新你的 package.json 和鎖文件,Bun 將開始使用修補的包:
bash
# 你可以提供已修補包的路徑
bun patch --commit node_modules/react
# ...或者包名和可選版本
bun patch --commit react@17.0.2
# 選擇存儲修補文件的目錄
bun patch --commit react --patches-dir=mypatches
# `patch-commit` 可用於與 pnpm 兼容
bun patch-commit react