https://github.com/antfu/pnpm-patch-i
A better and interactive pnpm patch
https://github.com/antfu/pnpm-patch-i
patch-management pnpm
Last synced: 6 days ago
JSON representation
A better and interactive pnpm patch
- Host: GitHub
- URL: https://github.com/antfu/pnpm-patch-i
- Owner: antfu
- License: mit
- Created: 2023-01-17T10:52:49.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2025-10-31T08:37:23.000Z (6 months ago)
- Last Synced: 2026-04-14T05:25:15.347Z (13 days ago)
- Topics: patch-management, pnpm
- Language: TypeScript
- Homepage:
- Size: 341 KB
- Stars: 293
- Watchers: 2
- Forks: 7
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# pnpm-patch-i
[](https://www.npmjs.com/package/pnpm-patch-i)
A better and interactive `pnpm patch`.
## Usage
```bash
npx pnpm-patch-i package-name
```
This CLI wraps with [`pnpm patch`](https://pnpm.io/cli/patch) and provides a better interactive experience:
- Have the patch dir under your local `node_modules/` folder instead of a global temp folder
- More human-friendly folder name instead of random string
- Open the editing folder in your editor via [`launch-editor`](https://github.com/yyx990803/launch-editor)
- Wait for your changes and automatically run `pnpm commit-patch ` for you
- Always runs at where `pnpm-lock.yaml` is located
### Apply Patch from a directory
It's also possible to apply a patch directly from a directory, for example:
```bash
npx pnpm-patch-i vite ../vite/packages/vite
```
You can also use `--build` (`-b`) flag to invoke `npm run build` in the source directory before applying the patch.
When merging the source `package.json` into the patched package, `workspace:` and `catalog:` dependency specifiers are resolved automatically:
- `workspace:*` / `workspace:^` / `workspace:~` / `workspace:` → reuses the version already present in the patched package's existing entry.
- `catalog:` / `catalog:` → looked up in the source repo's `pnpm-workspace.yaml` catalog definitions.
> [!NOTE]
> If the source package is in a monorepo with custom linking, directly applying the patch from a directory might result in copying the linking where the current project might not be able to resolve.
> In that case, it's recommended to pack the source package into a tgz file and apply the patch from the tgz file with `--pack` (`-p`) flag.
## Sponsors
## License
[MIT](./LICENSE) License © 2023 [Anthony Fu](https://github.com/antfu)