Aller au contenu
verdict:

pnpm 10.26.0

notable

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

note: pas de synthèse pour cette release plus ancienne

Nous synthétisons les releases récentes. Les notes de version originales de cette version sont ci-dessous.

release-notesgithub.com/pnpm/pnpm · 110 lignes
  1. ## Minor Changes
  2. * **Semi-breaking.** Block git-hosted dependencies from running prepare scripts unless explicitly allowed in `onlyBuiltDependencies` [#10288](https://github.com/pnpm/pnpm/pull/10288).
  3. * **Semi-breaking.** Compute integrity hash for HTTP tarball dependencies when fetching, storing it in the lockfile to prevent servers from serving altered content on subsequent installs [#10287](https://github.com/pnpm/pnpm/pull/10287).
  4. * Added a new setting `blockExoticSubdeps` that prevents the resolution of exotic protocols in transitive dependencies.
  5. When set to `true`, direct dependencies (those listed in your root `package.json`) may still use exotic sources, but all transitive dependencies must be resolved from a trusted source. Trusted sources include the configured registry, local file paths, workspace links, trusted GitHub repositories (node, bun, deno), and custom resolvers.
  6. This helps to secure the dependency supply chain. Packages from trusted sources are considered safer, as they are typically subject to more reliable verification and scanning for malware and vulnerabilities.
  7. **Exotic sources** are dependency locations that bypass the usual trusted resolution process. These protocols are specifically targeted and blocked: Git repositories (`git+ssh://...`) and direct URL links to tarballs (`https://.../package.tgz`).
  8. Related PR: [#10265](https://github.com/pnpm/pnpm/pull/10265).
  9. * Added support for `allowBuilds`, which is a new field that can be used instead of `onlyBuiltDependencies` and `ignoredBuiltDependencies`. The new `allowBuilds` field in your `pnpm-workspace.yaml` uses a map of package matchers to explicitly allow (`true`) or disallow (`false`) script execution. This allows for a single, easy-to-manage source of truth for your build permissions.
  10. **Example Usage.** To explicitly allow all versions of `esbuild` to run scripts and prevent `core-js` from running them:
  11. ```yaml
  12. allowBuilds:
  13. esbuild: true
  14. core-js: false
  15. ```
  16. The example above achieves the same result as the previous configuration:
  17. ```yaml
  18. onlyBuiltDependencies:
  19. - esbuild
  20. ignoredBuiltDependencies:
  21. - core-js
  22. ```
  23. Related PR: [#10311](https://github.com/pnpm/pnpm/pull/10311)
  24. * Added support for `--dry-run` to the `pack` command [#10301](https://github.com/pnpm/pnpm/issues/10301).
  25. ## Patch Changes
  26. * Show deprecation in table/list formats when latest version is deprecated [#8658](https://github.com/pnpm/pnpm/issues/8658).
  27. * Remove the `injectWorkspacePackages` setting from the lockfile on the `deploy` command [#10294](https://github.com/pnpm/pnpm/pull/10294).
  28. * Normalize the tarball URLs before saving them to the lockfile. URLs should not contain default ports, like :80 for http and :443 for https [#10273](https://github.com/pnpm/pnpm/pull/10273).
  29. * When a dependency is installed via a direct URL that redirects to another URL and is immutable, the original URL is normalized and saved to `package.json` [#10197](https://github.com/pnpm/pnpm/pull/10197).
  30. ## Platinum Sponsors
  31. <table>
  32. <tbody>
  33. <tr>
  34. <td align="center" valign="middle">
  35. <a href="https://bit.dev/?utm_source=pnpm&utm_medium=release_notes" target="_blank"><img src="https://pnpm.io/img/users/bit.svg" width="80" alt="Bit"></a>
  36. </td>
  37. </tr>
  38. </tbody>
  39. </table>
  40. ## Gold Sponsors
  41. <table>
  42. <tbody>
  43. <tr>
  44. <td align="center" valign="middle">
  45. <a href="https://discord.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
  46. <picture>
  47. <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/discord.svg" />
  48. <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/discord_light.svg" />
  49. <img src="https://pnpm.io/img/users/discord.svg" width="220" alt="Discord" />
  50. </picture>
  51. </a>
  52. </td>
  53. <td align="center" valign="middle">
  54. <a href="https://coderabbit.ai/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
  55. <picture>
  56. <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/coderabbit.svg" />
  57. <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/coderabbit_light.svg" />
  58. <img src="https://pnpm.io/img/users/coderabbit.svg" width="220" alt="CodeRabbit" />
  59. </picture>
  60. </a>
  61. </td>
  62. <td align="center" valign="middle">
  63. <a href="https://workleap.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
  64. <picture>
  65. <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/workleap.svg" />
  66. <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/workleap_light.svg" />
  67. <img src="https://pnpm.io/img/users/workleap.svg" width="190" alt="Workleap" />
  68. </picture>
  69. </a>
  70. </td>
  71. </tr>
  72. <tr>
  73. <td align="center" valign="middle">
  74. <a href="https://stackblitz.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
  75. <picture>
  76. <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/stackblitz.svg" />
  77. <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/stackblitz_light.svg" />
  78. <img src="https://pnpm.io/img/users/stackblitz.svg" width="190" alt="Stackblitz" />
  79. </picture>
  80. </a>
  81. </td>
  82. <td align="center" valign="middle">
  83. <a href="https://vite.dev/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
  84. <img src="https://pnpm.io/img/users/vitejs.svg" width="42" alt="Vite">
  85. </a>
  86. </td>
  87. </tr>
  88. </tbody>
  89. </table>

voir sur githubimported 2026-09-28 via npm