Change8

v10.33.0

📦 pnpmView on GitHub →
1 features🐛 10 fixes🔧 7 symbols

Summary

This release introduces the `dedupePeers` setting to significantly reduce peer dependency duplication and includes numerous fixes for concurrent operations, Windows command execution, and lockfile handling.

Migration Steps

  1. If you rely on the exact structure of peer dependency suffixes in environments where nested peer dependencies were common, review configurations related to peer dependency resolution, especially if you encounter unexpected deduplication after enabling `dedupePeers`.

✨ New Features

  • Added a new setting `dedupePeers` which, when enabled, reduces peer dependency duplication by using version-only identifiers (`name@version`) for peer dependency suffixes, eliminating nested suffixes like `(foo@1.0.0(bar@2.0.0))`.

🐛 Bug Fixes

  • Fail on incompatible lockfiles in CI when frozen lockfile mode is enabled, while preserving non-frozen CI fallback behavior.
  • Error messages when package metadata is malformed or cannot be fetched now show the originating error.
  • Fixed intermittent failures when multiple `pnpm dlx` calls run concurrently for the same package by verifying file content before skipping a rename when the global virtual store is enabled.
  • Tolerates EPERM during bin creation on Windows and properly propagates `enableGlobalVirtualStore` through the install pipeline during concurrent `pnpm dlx` calls.
  • Fixed handling of non-string version selectors in `hoistPeers`, preventing invalid peer dependency specifiers.
  • Improved the non-interactive modules purge error hint to include the `confirmModulesPurge=false` workaround when no TTY is available.
  • Fixed false "Command not found" errors on Windows when a command exists in PATH but exits with a non-zero code.
  • Fixed path resolution for `--filter` contexts where the command runs in a different package directory.
  • When a pnpm-lock.yaml contains two documents, the first one is now ignored (pnpm v11 will write two lockfile documents to support future features).
  • Fixed a bug preventing the `clearCache` function returned by `createNpmResolver` from properly clearing metadata cache.

Affected Symbols