import Patch from "/snippets/cli/patch.mdx";
bun patch vous permet de patcher des packages node_modules de manière persistante et maintenable, compatible avec git.
Parfois, vous devez apporter une petite modification à un package dans node_modules/ pour corriger un bug ou ajouter une fonctionnalité. bun patch facilite cela sans avoir à vendor l'intégralité du package et permet de réutiliser le patch sur plusieurs installations, plusieurs projets et plusieurs machines.
Fonctionnalités :
- Génère des fichiers
.patchappliqués aux dépendances dansnode_moduleslors de l'installation - Les fichiers
.patchpeuvent être commités dans votre dépôt, réutilisés sur plusieurs installations, projets et machines "patchedDependencies"danspackage.jsongarde une trace des packages patchésbun patchvous permet de patcher des packages dansnode_modules/tout en préservant l'intégrité du Cache Global de Bun- Testez vos changements localement avant de les commiter avec
bun patch --commit <pkg> - Pour économiser de l'espace disque et maintenir
bun installrapide, les packages patchés sont commités dans le Cache Global et partagés entre les projets lorsque possible
Étape 1. Préparer le package pour le patching
Pour commencer, utilisez bun patch <pkg> pour préparer le package pour le patching :
# vous pouvez fournir le nom du package
bun patch react
# ...et une version précise au cas où plusieurs versions seraient installées
bun patch react@17.0.2
# ou le chemin vers le package
bun patch node_modules/reactNote
N'oubliez pas d'appeler bun patch <pkg> ! Cela garantit que le dossier du package dans node_modules/ contient une copie fraîche du package sans liens symboliques/liens physiques vers le cache de Bun. Si vous oubliez de faire cela, vous pourriez finir par modifier le package globalement dans le cache !
Étape 2. Tester vos changements localement
bun patch <pkg> rend sûr de modifier <pkg> dans node_modules/ directement, tout en préservant l'intégrité du Cache Global de Bun. Cela fonctionne en recréant un clone non lié du package dans node_modules/ et en le comparant au package original dans le Cache Global.
Étape 3. Commiter vos changements
Une fois que vous êtes satisfait de vos changements, exécutez bun patch --commit <path or pkg>.
Bun générera un fichier patch dans patches/, mettra à jour votre package.json et votre lockfile, et Bun commencera à utiliser le package patché :
# vous pouvez fournir le chemin vers le package patché
bun patch --commit node_modules/react
# ... ou le nom du package et éventuellement la version
bun patch --commit react@17.0.2
# choisir le répertoire pour stocker les fichiers patch
bun patch --commit react --patches-dir=mypatches
# `patch-commit` est disponible pour la compatibilité avec pnpm
bun patch-commit react