Ir al contenido
verdict:

pnpm 10.26.0

notable

note: la síntesis y las notas de la versión están en inglés

note: sin síntesis para esta release más antigua

Sintetizamos las releases recientes. Las notas de la versión originales de esta versión están aquí abajo.

release-notesgithub.com/pnpm/pnpm · 110 líneas
  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>

ver en githubimported 2026-09-28 vía npm