Minor Changes
-
Dependencies patching is possible via the
pnpm.patchedDependencies
field of thepackage.json
.
To patch a package, the package name, exact version, and the relative path to the patch file should be specified. For instance:{ "pnpm": { "patchedDependencies": { "eslint@1.0.0": "./patches/eslint@1.0.0.patch" } } }
-
Two new commands added:
pnpm patch
andpnpm patch-commit
.pnpm patch <pkg>
prepares a package for patching. For instance, if you want to patch express v1, run:pnpm patch express@1.0.0
pnpm will create a temporary directory with
express@1.0.0
that you can modify with your changes.
Once you are read with your changes, run:pnpm patch-commit <path to temp folder>
This will create a patch file and write it to
<project>/patches/express@1.0.0.patch
.
Also, it will reference this new patch file from thepatchedDependencies
field inpackage.json
:{ "pnpm": { "patchedDependencies": { "express@1.0.0": "patches/express@1.0.0.patch" } } }
-
A new experimental command added:
pnpm deploy
. The deploy command takes copies a project from a workspace and installs all of its production dependencies (even if some of those dependencies are other projects from the workspace).For example, the new command will deploy the project named
foo
to thedist
directory in the root of the workspace:pnpm --filter=foo deploy dist
-
package-import-method
supports a new option:clone-or-copy
. -
New setting added:
include-workspace-root
. When it is set totrue
, therun
,exec
,add
, andtest
commands will include the root package, when executed recursively #4906
Patch Changes
-
Don't crash when
pnpm update --interactive
is cancelled with Ctrl+c. -
The
use-node-version
setting should work with prerelease Node.js versions. For instance:use-node-version=18.0.0-rc.3
-
Return early when the lockfile is up-to-date.
-
Resolve native workspace path for case-insensitive file systems #4904.
-
Don't link local dev dependencies, when prod dependencies should only be installed.
-
pnpm audit --fix
should not add an override for a vulnerable package that has no fixes released. -
Update the compatibility database.
Our Gold Sponsors
Our Silver Sponsors
What's Changed
- feat: patch package by @zkochan in #4885
- feat: add
patch
andpatch-commit
commands by @zkochan in #4900 - fix(env):
use-node-version
should work with prerelease versions by @zkochan in #4903 - refactor: create @pnpm/node.fetcher by @zkochan in #4908
- feat(patch): update patched dependencies on install by @zkochan in #4905
- fix: throw an error if not all patches were applied by @zkochan in #4911
- fix: a modified patch should update the deps on install by @zkochan in #4918
- fix: packages should be patched even when scripts are ignored by @zkochan in #4922
- fix: patch package even if it is not in the onlyBuiltDependencies list by @zkochan in #4925
- fix: respect include-workspace-root npmrc option by @shirotech in #4928
- fix: install --lockfile-only should exit early by @zkochan in #4932
- fix: resolve real path for case insensitive systems by @mdogadailo in #4935
- feat: deploy command by @zkochan in #4933
- fix: use recursive for deploy command directory creation by @ragrag in #4943
- fix: don't fail when the patched pkg appears multiple times by @zkochan in #4945
New Contributors
- @shirotech made their first contribution in #4928
- @mdogadailo made their first contribution in #4935
- @ragrag made their first contribution in #4943
Full Changelog: v7.3.0...v7.4.0