Skip to content

import Patch from "/it/snippets/cli/patch.mdx";

bun patch ti permette di applicare patch persistenti a node_modules in modo mantenibile e compatibile con git.

A volte, hai bisogno di fare una piccola modifica a un pacchetto in node_modules/ per correggere un bug o aggiungere una funzionalità. bun patch rende facile fare questo senza vendere l'intero pacchetto e riutilizzare la patch attraverso più installazioni, più progetti e più macchine.

Caratteristiche:

  • Genera file .patch applicati alle dipendenze in node_modules durante l'installazione
  • I file .patch possono essere commitati nel tuo repository, riutilizzati attraverso più installazioni, progetti e macchine
  • "patchedDependencies" in package.json tiene traccia dei pacchetti patchati
  • bun patch ti permette di applicare patch ai pacchetti in node_modules/ preservando l'integrità della Cache Globale di Bun
  • Testa le tue modifiche localmente prima di commitarle con bun patch --commit <pkg>
  • Per preservare spazio su disco e mantenere bun install veloce, i pacchetti patchati sono commitati nella Cache Globale e condivisi tra i progetti dove possibile

Passo 1. Preparare il pacchetto per la patch

Per iniziare, usa bun patch <pkg> per preparare il pacchetto per la patch:

bash
# puoi fornire il nome del pacchetto
bun patch react
# ...e una versione precisa nel caso siano installate più versioni
bun patch react@17.0.2
# o il percorso al pacchetto
bun patch node_modules/react

Nota

Non dimenticare di chiamare bun patch <pkg>! Questo assicura che la cartella del pacchetto in node_modules/ contenga una copia fresca del pacchetto senza symlink/hardlink alla cache di Bun. Se dimentichi di farlo, potresti finire per modificare il pacchetto globalmente nella cache!

Passo 2. Testare le modifiche localmente

bun patch <pkg> rende sicuro modificare <pkg> in node_modules/ direttamente, preservando l'integrità della Cache Globale di Bun. Questo funziona ricreando un clone non collegato del pacchetto in node_modules/ e confrontandolo con il pacchetto originale nella Cache Globale.

Passo 3. Commit delle modifiche

Una volta soddisfatto delle tue modifiche, esegui bun patch --commit <path or pkg>.

Bun genererà un file patch in patches/, aggiornerà il tuo package.json e lockfile, e Bun inizierà a usare il pacchetto patchato:

bash
# puoi fornire il percorso al pacchetto patchato
bun patch --commit node_modules/react

# ... o il nome del pacchetto e opzionalmente la versione
bun patch --commit react@17.0.2

# scegli la directory dove memorizzare i file patch
bun patch --commit react --patches-dir=mypatches

# `patch-commit` è disponibile per compatibilità con pnpm
bun patch-commit react

Bun a cura di www.bunjs.com.cn