table of contents
- unstable 12.0.2+ds1-2
| NPM-PATCH(1) | General Commands Manual | NPM-PATCH(1) |
NAME¶
npm-patch
Synopsis¶
<!-- AUTOGENERATED USAGE DESCRIPTIONS -->.SH Description
npm patch lets you apply small, local modifications to an
installed
dependency and have them re-applied automatically on every install. Patches
are declared in the patchedDependencies field of your root
package.json,
stored as plain unified diffs under the patches/ directory, and
recorded with
a content hash in package-lock.json.
Because patches are applied during the install itself, they work
regardless of
install-strategy, apply to transitive dependencies, and are not
disabled
by --ignore-scripts.
The bare form npm patch <pkg> is shorthand for npm
patch add <pkg>. A
package literally named like a subcommand must use the explicit form, e.g.
npm patch add add.
- •
- npm patch add <pkg>[@<version>]
Prepares a package for editing. npm extracts a clean copy of the
resolved
package tarball into a temporary directory outside node_modules and
prints
its path. Edit the files there, then run npm patch commit.
If more than one version of <pkg> is installed,
re-run with an exact
selector such as npm patch add lodash@4.17.21.
- •
- npm patch commit <edit-dir>
Diffs the edited directory against a clean copy of the original
tarball,
writes the unified diff to
<patches-dir>/<name>@<version>.patch, adds the
entry to patchedDependencies, and updates package-lock.json.
- •
- npm patch ls
Lists registered patches and how many installed nodes each one matches.
- •
- npm patch rm <pkg>[@<version>]
Removes the matching entries from patchedDependencies,
deletes the patch
file when no other entry references it, and updates package-lock.json.
If
<version> is omitted, all entries for <pkg> are
removed.
Failure modes¶
By default any patch problem is a hard error that aborts the
install: a patch
that fails to apply, a registered patch that matches no installed package, a
missing patch file, or a patch whose hash does not match the lockfile.
Two CLI-only flags relax this for one-off cases:
--allow-unused-patches and
--ignore-patch-failures.
Configuration¶
<!-- AUTOGENERATED CONFIG DESCRIPTIONS -->
See Also¶
- npm install
- npm ci
- package-lock.json
- config
| September 2026 | 12.0.2 |