Aller au contenu
verdict:

pnpm 12.12.0

notable

note: la synthèse et les notes de version sont en anglais

pending: synthèse en file

Détectée le 2026-10-11 à 02:31 UTC. Les synthèses arrivent d’habitude en quelques heures ; les notes de version complètes sont déjà ci-dessous.

release-notesgithub.com/pnpm/pnpm · 149 lignes
  1. This release shares task results and dependency builds through a remote cache, adds the `addMissingPeerTypes` setting, and lets `pnpm add --config` and `pnpm update` manage configuration dependencies. It also fixes `dangerouslyAllowAllBuilds` running the build scripts of packages that `allowBuilds` denies.
  2. ### Minor Changes
  3. - `pnpm pipeline` can share task results between machines. A result is a signed artifact stored on a pnpr server or on a server that speaks the Turborepo Remote Cache API, such as Vercel Remote Cache.
  4. The remote side-effects cache can also store dependency builds on a Turborepo Remote Cache server. Both caches read the new `remoteCache` setting, which names the server and holds the signing keys. `pnpm pipeline --report` records the run under the organization `remoteCache.org` names.
  5. - Added the `addMissingPeerTypes` setting, which links the `@types` package of a peer dependency next to every package that peer-depends on it. For example, a package that peer-depends on `react` gets the project's `@types/react` linked next to it. This lets TypeScript find the types of a peer dependency when the global virtual store is on [#15689](https://github.com/pnpm/pnpm/discussions/15689).
  6. - `pnpm add --config` and `pnpm update` now handle configuration dependencies the way they handle other dependencies [#16814](https://github.com/pnpm/pnpm/issues/16814).
  7. `pnpm add --config` saves a version range in `pnpm-workspace.yaml` by the same rules as `pnpm add`, so `pnpm add --config my-config@latest` saves a range such as `^1.2.0`. It also resolves the package again when `pnpm-lock.yaml` already locks an older version.
  8. `pnpm update` updates configuration dependencies within their ranges, and `pnpm update --latest` moves them to their latest version. A selector such as `pnpm update my-config` updates only the configuration dependencies it names.
  9. ### Patch Changes
  10. - A package set to `false` in `allowBuilds` no longer runs its build scripts when `dangerouslyAllowAllBuilds` is `true`. The two settings together now allow every build except the denied ones. Previously, `dangerouslyAllowAllBuilds` ignored the denials.
  11. - pnpm now switches to the pnpm version a project pins even when it cannot read its configuration. Previously, a setting it rejected in the global config file, an `.npmrc` file, or `_auth`, or a `pnpm-workspace.yaml` it could not parse, stopped every command, `pnpm --version` included.
  12. - `pnpm update` and `pnpm why` accept `--depth Infinity` again. They failed with `invalid value 'Infinity' for '--depth <DEPTH>'` [#16817](https://github.com/pnpm/pnpm/issues/16817).
  13. - `pnpm deploy` without `injectWorkspacePackages` now binds a peer dependency of a linked workspace package to the version its parent provides, as an injected install does. Previously the deploy failed with `ERR_PNPM_DEPLOY_AMBIGUOUS_PEER` whenever other packages in the deployed graph depended on different versions of that peer [#16807](https://github.com/pnpm/pnpm/issues/16807).
  14. - `pnpm deploy --legacy` no longer fails with `ERR_PNPM_SPEC_NOT_SUPPORTED_BY_ANY_RESOLVER` when a workspace dependency of the deployed project declares a `workspace:` peer dependency that the project does not depend on itself. pnpm now copies that peer from the workspace into the deploy directory.
  15. An auto-installed peer declared with `workspace:` now always resolves to the workspace project. Previously, `workspace:*` and `workspace:^1.0.0` peers could be installed from the registry [#16806](https://github.com/pnpm/pnpm/issues/16806).
  16. - Repeat installs no longer resolve again when an injected workspace package lists a dependency also as a peer dependency.
  17. - Sped up frozen installs of unchanged injected workspace packages that use hardlinks.
  18. - Sped up workspace discovery with subtree exclusions such as `!generated/**`.
  19. - A key under a registry URL in the `_auth` setting that does not start with `@` is now skipped with a warning, so a field a later pnpm version adds there no longer breaks this one. A key that holds an `authToken` object but lacks its `@`, such as `org` for `@org`, is still an error.
  20. <!-- sponsors -->
  21. ## Platinum Sponsors
  22. <table>
  23. <tbody>
  24. <tr>
  25. <td align="center" valign="middle">
  26. <a href="https://bit.cloud/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer"><img src="https://pnpm.io/img/users/bit.svg" width="80" alt="Bit"></a>
  27. </td>
  28. <td align="center" valign="middle">
  29. <a href="https://openai.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer">
  30. <picture>
  31. <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/openai_dark.svg" />
  32. <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/openai_light.svg" />
  33. <img src="https://pnpm.io/img/users/openai_dark.svg" width="160" alt="OpenAI" />
  34. </picture>
  35. </a>
  36. </td>
  37. <td align="center" valign="middle">
  38. <a href="https://notion.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer"><img src="https://pnpm.io/img/users/notion.svg" width="80" alt="Notion"></a>
  39. </td>
  40. </tr>
  41. <tr>
  42. <td align="center" valign="middle">
  43. <a href="https://coderabbit.ai/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer">
  44. <picture>
  45. <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/coderabbit.svg" />
  46. <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/coderabbit_light.svg" />
  47. <img src="https://pnpm.io/img/users/coderabbit.svg" width="220" alt="CodeRabbit" />
  48. </picture>
  49. </a>
  50. </td>
  51. </tr>
  52. </tbody>
  53. </table>
  54. ## Gold Sponsors
  55. <table>
  56. <tbody>
  57. <tr>
  58. <td align="center" valign="middle">
  59. <a href="https://sanity.io/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer">
  60. <picture>
  61. <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/sanity.svg" />
  62. <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/sanity_light.svg" />
  63. <img src="https://pnpm.io/img/users/sanity.svg" width="120" alt="Sanity" />
  64. </picture>
  65. </a>
  66. </td>
  67. <td align="center" valign="middle">
  68. <a href="https://discord.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer">
  69. <picture>
  70. <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/discord.svg" />
  71. <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/discord_light.svg" />
  72. <img src="https://pnpm.io/img/users/discord.svg" width="220" alt="Discord" />
  73. </picture>
  74. </a>
  75. </td>
  76. <td align="center" valign="middle">
  77. <a href="https://vite.dev/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer"><img src="https://pnpm.io/img/users/vitejs.svg" width="42" alt="Vite"></a>
  78. </td>
  79. </tr>
  80. <tr>
  81. <td align="center" valign="middle">
  82. <a href="https://serpapi.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer">
  83. <picture>
  84. <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/serpapi_dark.svg" />
  85. <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/serpapi_light.svg" />
  86. <img src="https://pnpm.io/img/users/serpapi_dark.svg" width="160" alt="SerpApi" />
  87. </picture>
  88. </a>
  89. </td>
  90. <td align="center" valign="middle">
  91. <a href="https://stackblitz.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer">
  92. <picture>
  93. <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/stackblitz.svg" />
  94. <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/stackblitz_light.svg" />
  95. <img src="https://pnpm.io/img/users/stackblitz.svg" width="190" alt="Stackblitz" />
  96. </picture>
  97. </a>
  98. </td>
  99. <td align="center" valign="middle">
  100. <a href="https://workleap.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer">
  101. <picture>
  102. <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/workleap.svg" />
  103. <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/workleap_light.svg" />
  104. <img src="https://pnpm.io/img/users/workleap.svg" width="190" alt="Workleap" />
  105. </picture>
  106. </a>
  107. </td>
  108. </tr>
  109. <tr>
  110. <td align="center" valign="middle">
  111. <a href="https://nx.dev/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer">
  112. <picture>
  113. <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/nx.svg" />
  114. <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/nx_light.svg" />
  115. <img src="https://pnpm.io/img/users/nx.svg" width="50" alt="Nx" />
  116. </picture>
  117. </a>
  118. </td>
  119. <td align="center" valign="middle">
  120. <a href="https://latitude.so/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer"><img src="https://pnpm.io/img/users/latitude.svg" width="160" alt="Latitude"></a>
  121. </td>
  122. </tr>
  123. </tbody>
  124. </table>
  125. <!-- sponsors end -->

voir sur githubdetected 2026-10-11 via npm