Fix peer dependency resolution dead lock #8570. This change might change some of the keys in the snapshots field inside pnpm-lock.yaml but it should happen very rarely.
pnpm outdated command supports now a --sort-by=name option for sorting outdated dependencies by package name #8523.
Added the ability for overrides to remove dependencies by specifying "-" as the field value #8572. For example, to remove lodash from the dependencies, use this configuration in package.json:
{
"pnpm": {
"overrides": {
"lodash": "-"
}
}
}
Patch Changes
Fixed an issue where pnpm list --json pkg showed "private": false for a private package #8519.
Packages with libc that differ from pnpm.supportedArchitectures.libc are not downloaded #7362.
Prevent ENOENT errors caused by running store prune in parallel #8586.
Support for a new CLI flag, --exclude-peers, added to the list and why commands. When --exclude-peers is used, peer dependencies are not printed in the results, but dependencies of peer dependencies are still scanned #8506.
Added a new setting to package.json at pnpm.auditConfig.ignoreGhsas for ignoring vulnerabilities by their GHSA code #6838.
Added pnpm version management. If the manage-package-manager-versions setting is set to true, pnpm will switch to the version specified in the packageManager field of package.json#8363. This is the same field used by Corepack. Example:
Added the ability to apply patch to all versions #8337.
If the key of pnpm.patchedDependencies is a package name without a version (e.g. pkg), pnpm will attempt to apply the patch to all versions of the package. Failures will be skipped. If there's only one version of pkg installed, pnpm patch pkg and subsequent pnpm patch-commit $edit_dir will create an entry named pkg in pnpm.patchedDependencies. And pnpm will attempt to apply this patch to other versions of pkg in the future.
Change the default edit dir location when running pnpm patch from a temporary directory to node_modules/.pnpm_patches/pkg[@​version] to allow the code editor to open the edit dir in the same file tree as the main project #8379.
Substitute environment variables in config keys #6679.
Patch Changes
pnpm install should run node-gyp rebuild if the project has a binding.gyp file even if the project doesn't have an install script #8293.
Support specifying node version (via pnpm.executionEnv.nodeVersion in package.json) for running lifecycle scripts per each package in a workspace #6720.
Semi-breaking. Dependency key names in the lockfile are shortened if they are longer than 1000 characters. We don't expect this change to affect many users. Affected users most probably can't run install successfully at the moment. This change is required to fix some edge cases in which installation fails with an out-of-memory error or "Invalid string length (RangeError: Invalid string length)" error. The max allowed length of the dependency key can be controlled with the peers-suffix-max-length setting #8177.
Patch Changes
Set reporter-hide-prefix to true by default for pnpm exec. In order to show prefix, the user now has to explicitly set reporter-hide-prefix=false#8174.
If package-manager-strict-version is set to true, pnpm will fail if its version doesn't exactly match the version in the "packageManager" field of package.json.
Patch Changes
Update @yarnpkg/pnp to the latest version, fixing issue with node: imports #8161.
Deduplicate bin names to prevent race condition and corrupted bin scripts #7833.
pnpm doesn't fail if its version doesn't match the one specified in the "packageManager" field of package.json#8087.
exec now also streams prefixed output when --recursive or --parallel is specified just as run does #8065.
Platinum Sponsors
Gold Sponsors
Our Silver Sponsors
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box