Skip to content

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

bun patch permite aplicar patches persistentes em node_modules de forma mantível e amigável ao git.

Às vezes, você precisa fazer uma pequena alteração em um pacote em node_modules/ para corrigir um bug ou adicionar um recurso. bun patch facilita fazer isso sem vender o pacote inteiro e reutilizar o patch em múltiplas instalações, múltiplos projetos e múltiplas máquinas.

Recursos:

  • Gera arquivos .patch aplicados a dependências em node_modules na instalação
  • Arquivos .patch podem ser commitados ao seu repositório, reutilizados em múltiplas instalações, projetos e máquinas
  • "patchedDependencies" no package.json mantém o controle de pacotes corrigidos
  • bun patch permite aplicar patches em pacotes em node_modules/ preservando a integridade do Cache Global do Bun
  • Teste suas alterações localmente antes de commitá-las com bun patch --commit <pkg>
  • Para preservar espaço em disco e manter bun install rápido, pacotes corrigidos são commitados ao Cache Global e compartilhados entre projetos quando possível

Passo 1. Preparar o pacote para patching

Para começar, use bun patch <pkg> para preparar o pacote para patching:

bash
# você pode fornecer o nome do pacote
bun patch react
# ...e uma versão precisa caso múltiplas versões estejam instaladas
bun patch react@17.0.2
# ou o caminho para o pacote
bun patch node_modules/react

Nota

Não esqueça de chamar bun patch <pkg>! Isso garante que a pasta do pacote em node_modules/ contenha uma cópia fresca do pacote sem symlinks/hardlinks para o cache do Bun. Se você esquecer de fazer isso, pode acabar editando o pacote globalmente no cache!

Passo 2. Testar suas alterações localmente

bun patch <pkg> torna seguro editar o <pkg> em node_modules/ diretamente, preservando a integridade do Cache Global do Bun. Isso funciona recriando um clone desvinculado do pacote em node_modules/ e fazendo diff contra o pacote original no Cache Global.

Passo 3. Commitar suas alterações

Quando estiver satisfeito com suas alterações, execute bun patch --commit <path or pkg>.

O Bun gerará um arquivo de patch em patches/, atualizará seu package.json e lockfile, e o Bun começará a usar o pacote corrigido:

bash
# você pode fornecer o caminho para o pacote corrigido
bun patch --commit node_modules/react

# ... ou o nome do pacote e opcionalmente a versão
bun patch --commit react@17.0.2

# escolher o diretório para armazenar os arquivos de patch
bun patch --commit react --patches-dir=mypatches

# `patch-commit` está disponível para compatibilidade com pnpm
bun patch-commit react

Bun by www.bunjs.com.cn edit