Appearance
Patching Node Modules with Bun
Sometimes you may need to patch a dependency in node_modules—for example, to fix a bug or apply a temporary workaround before an upstream fix is released. Bun makes this process straightforward with its built-in patching system.
Why Patch?
- Urgent bugfixes: Apply a fix before it's merged upstream.
- Custom behavior: Add or change functionality for your use case.
- Temporary workarounds: Unblock development while waiting for a package update.
How Bun Patching Works
Bun supports patching node modules using the bun add --use and bun pm patch commands. This creates a patch file that is automatically applied whenever you install dependencies.
Step-by-Step: Patching a Module
1. Find the Module to Patch
Decide which package and file you need to patch. For example, suppose you want to patch some-package in node_modules.
2. Run the Patch Command
sh
bun pm patch some-packageThis will:
- Copy the package to a temporary directory.
- Open your editor to make changes.
3. Make Your Changes
Edit the files as needed. Save and close your editor when done.
4. Bun Creates a Patch File
Bun will generate a patch file (e.g., patches/some-package@1.2.3.patch) in your project. This patch will be applied automatically on future installs.
5. Commit the Patch
Be sure to commit the patch file to your repository so others get the same fix.
6. Verify
Reinstall dependencies and check that your patch is applied:
sh
bun installExample
Suppose you want to patch a bug in node_modules/some-package/index.js:
sh
bun pm patch some-package
# Your editor opens. Make your changes, save, and close.
# Bun creates patches/some-package@x.y.z.patchNotes
- Patches are version-specific: If the package version changes, you may need to re-create or update the patch.
- Keep patches minimal: Only patch what you must, and remove patches when no longer needed.
- Upstream first: Always try to contribute your fix upstream if possible.