This PR contains the following updates:
Release Notes
pnpm/pnpm (pnpm)
Compare Source
Patch Changes
- When checking whether a file in the store has executable permissions, the new approach checks if at least one of the executable bits (owner, group, and others) is set to 1. Previously, a file was incorrectly considered executable only when all the executable bits were set to 1. This fix ensures that files with any executable permission, regardless of the user class, are now correctly identified as executable #8546.
Platinum Sponsors
Gold Sponsors
Our Silver Sponsors
Compare Source
Patch Changes
pnpm update --latest should not update the automatically installed peer dependencies #6657.
pnpm publish should be able to publish from a local tarball #7950.
- The pnpx command should work correctly on Windows, when pnpm is installed via the standalone installation script #8608.
- Prevent
EBUSY errors caused by creating symlinks in parallel dlx processes #8604.
- Fix maximum call stack size exceeded error related to circular workspace dependencies #8599.
Platinum Sponsors
Gold Sponsors
Our Silver Sponsors
Compare Source
Minor Changes
-
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.
- Add issues alias to
pnpm bugs #8596.
Platinum Sponsors
Gold Sponsors
Our Silver Sponsors
Compare Source
Compare Source
Minor Changes
-
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.
For instance:
{
"pnpm": {
"auditConfig": {
"ignoreGhsas": [
"GHSA-42xw-2xvc-qx8m",
"GHSA-4w2v-q235-vp99",
"GHSA-cph5-m8f7-6c5x",
"GHSA-vh95-rmgr-6w4m"
]
}
}
}
Patch Changes
- Throw an exception if pnpm switches to the same version of itself.
- Reduce memory usage during peer dependencies resolution.
Platinum Sponsors
Gold Sponsors
Our Silver Sponsors
Compare Source
Compare Source
Compare Source
Compare Source
Minor Changes
-
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:
{
"packageManager": "[email protected]"
}
-
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.
- Print warnings to stderr #8342.
- Peer dependencies of optional peer dependencies should be automatically installed #8323.
Platinum Sponsors
Gold Sponsors
Our Silver Sponsors
Compare Source
Minor Changes
- Support specifying node version (via
pnpm.executionEnv.nodeVersion in package.json) for running lifecycle scripts per each package in a workspace #6720.
- Overrides now support the
catalogs: protocol #8303.
Patch Changes
- The
pnpm deploy command now supports the catalog: protocol #8298.
- The
pnpm outdated command now supports the catalog: protocol #8304.
- Correct the error message when trying to run
pnpm patch without node_modules/.modules.yaml #8257.
- Silent reporting fixed with the
pnpm exec command #7608.
- Add registries information to the calculation of dlx cache hash #8299.
Platinum Sponsors
Gold Sponsors
Our Silver Sponsors
Compare Source
Compare Source
Compare Source
Minor Changes
- 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.
Platinum Sponsors
Gold Sponsors
Our Silver Sponsors