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
.patchaplicados a dependências emnode_modulesna instalação - Arquivos
.patchpodem ser commitados ao seu repositório, reutilizados em múltiplas instalações, projetos e máquinas "patchedDependencies"nopackage.jsonmantém o controle de pacotes corrigidosbun patchpermite aplicar patches em pacotes emnode_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 installrá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:
# 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/reactNota
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:
# 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