Skip to content
verdict:

pnpm 10.33.0

notable

note: no summary for this older release

We summarize recent releases. The original release notes for this version are below.

release-notesgithub.com/pnpm/pnpm · 121 lines
  1. ## Minor Changes
  2. * Added a new `dedupePeers` setting that reduces peer dependency duplication. When enabled, peer dependency suffixes use version-only identifiers (`name@version`) instead of full dep paths, eliminating nested suffixes like `(foo@1.0.0(bar@2.0.0))`. This dramatically reduces the number of package instances in projects with many recursive peer dependencies [#11070](https://github.com/pnpm/pnpm/issues/11070).
  3. ## Patch Changes
  4. * Fail on incompatible lockfiles in CI when frozen lockfile mode is enabled, while preserving non-frozen CI fallback behavior.
  5. * When package metadata is malformed or can't be fetched, the error thrown will now show the originating error.
  6. * Fixed intermittent failures when multiple `pnpm dlx` calls run concurrently for the same package. When the global virtual store is enabled, the importer now verifies file content before skipping a rename, avoiding destructive swap-renames that break concurrent processes. Also tolerates EPERM during bin creation on Windows and properly propagates `enableGlobalVirtualStore` through the install pipeline.
  7. * Fixed handling of non-string version selectors in `hoistPeers`, preventing invalid peer dependency specifiers.
  8. * Improve the non-interactive modules purge error hint to include the `confirmModulesPurge=false` workaround.
  9. When pnpm needs to recreate `node_modules` but no TTY is available, the error now suggests either setting `CI=true` or disabling the purge confirmation prompt via `confirmModulesPurge=false`.
  10. Adds a regression test for the non-TTY flow.
  11. * Fixed false "Command not found" errors on Windows when a command exists in PATH but exits with a non-zero code. Also fixed path resolution for `--filter` contexts where the command runs in a different package directory.
  12. * When a pnpm-lock.yaml contains two documents, ignore the first one. pnpm v11 will write two lockfile documents into pnpm-lock.yaml in order to store pnpm version integrities and config dependency resolutions.
  13. * Fixed a bug preventing the `clearCache` function returned by `createNpmResolver` from properly clearing metadata cache.
  14. <!-- sponsors -->
  15. ## Platinum Sponsors
  16. <table>
  17. <tbody>
  18. <tr>
  19. <td align="center" valign="middle">
  20. <a href="https://bit.cloud/?utm_source=pnpm&utm_medium=release_notes" target="_blank"><img src="https://pnpm.io/img/users/bit.svg" width="80" alt="Bit"></a>
  21. </td>
  22. </tr>
  23. </tbody>
  24. </table>
  25. ## Gold Sponsors
  26. <table>
  27. <tbody>
  28. <tr>
  29. <td align="center" valign="middle">
  30. <a href="https://sanity.io/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
  31. <picture>
  32. <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/sanity.svg" />
  33. <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/sanity_light.svg" />
  34. <img src="https://pnpm.io/img/users/sanity.svg" width="120" alt="Sanity" />
  35. </picture>
  36. </a>
  37. </td>
  38. <td align="center" valign="middle">
  39. <a href="https://discord.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
  40. <picture>
  41. <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/discord.svg" />
  42. <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/discord_light.svg" />
  43. <img src="https://pnpm.io/img/users/discord.svg" width="220" alt="Discord" />
  44. </picture>
  45. </a>
  46. </td>
  47. <td align="center" valign="middle">
  48. <a href="https://vite.dev/?utm_source=pnpm&utm_medium=release_notes" target="_blank"><img src="https://pnpm.io/img/users/vitejs.svg" width="42" alt="Vite"></a>
  49. </td>
  50. </tr>
  51. <tr>
  52. <td align="center" valign="middle">
  53. <a href="https://serpapi.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
  54. <picture>
  55. <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/serpapi_dark.svg" />
  56. <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/serpapi_light.svg" />
  57. <img src="https://pnpm.io/img/users/serpapi_dark.svg" width="160" alt="SerpApi" />
  58. </picture>
  59. </a>
  60. </td>
  61. <td align="center" valign="middle">
  62. <a href="https://coderabbit.ai/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
  63. <picture>
  64. <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/coderabbit.svg" />
  65. <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/coderabbit_light.svg" />
  66. <img src="https://pnpm.io/img/users/coderabbit.svg" width="220" alt="CodeRabbit" />
  67. </picture>
  68. </a>
  69. </td>
  70. <td align="center" valign="middle">
  71. <a href="https://stackblitz.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
  72. <picture>
  73. <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/stackblitz.svg" />
  74. <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/stackblitz_light.svg" />
  75. <img src="https://pnpm.io/img/users/stackblitz.svg" width="190" alt="Stackblitz" />
  76. </picture>
  77. </a>
  78. </td>
  79. </tr>
  80. <tr>
  81. <td align="center" valign="middle">
  82. <a href="https://workleap.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
  83. <picture>
  84. <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/workleap.svg" />
  85. <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/workleap_light.svg" />
  86. <img src="https://pnpm.io/img/users/workleap.svg" width="190" alt="Workleap" />
  87. </picture>
  88. </a>
  89. </td>
  90. <td align="center" valign="middle">
  91. <a href="https://nx.dev/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
  92. <picture>
  93. <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/nx.svg" />
  94. <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/nx_light.svg" />
  95. <img src="https://pnpm.io/img/users/nx.svg" width="50" alt="Nx" />
  96. </picture>
  97. </a>
  98. </td>
  99. </tr>
  100. </tbody>
  101. </table>
  102. <!-- sponsors end -->

view on githubimported 2026-09-28 via npm