Zum Inhalt springen
verdict:

pnpm 11.1.0

notable

note: die Zusammenfassung und die Release Notes sind auf Englisch

note: keine Zusammenfassung für dieses ältere Release

Wir fassen die neueren Releases zusammen. Die originalen Release Notes dieser Version stehen hier unten.

release-notesgithub.com/pnpm/pnpm · 147 Zeilen
  1. > See full [v11.0.0 changelog](https://github.com/pnpm/pnpm/releases/tag/v11.0.0)
  2. > Migration guide: [Migrating from v10 to v11](https://pnpm.io/11.x/migration)
  3. ## Minor Changes
  4. * Added `pnpm audit signatures` to verify ECDSA registry signatures for installed packages against keys from `/-/npm/v1/keys` [#7909](https://github.com/pnpm/pnpm/issues/7909). Scoped registries are respected, and registries without signing keys are skipped.
  5. * Added support for installing packages from the [GitHub Packages npm registry](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-npm-registry) via a built-in `gh:` prefix (e.g. `pnpm add gh:@acme/private`), and, more broadly, for arbitrary named registries in the style of [vlt's named-registry aliases](https://docs.vlt.sh/cli/registries). Authentication is picked up from the existing per-URL `.npmrc` entries (e.g. `//npm.pkg.github.com/:_authToken=...`), so no separate auth mechanism is required.
  6. Additional aliases — or an override for the built-in `gh` alias, for GitHub Enterprise Server — can be configured under `namedRegistries` in `pnpm-workspace.yaml`:
  7. ```yaml
  8. namedRegistries:
  9. gh: https://npm.pkg.github.example.com/
  10. work: https://npm.work.example.com/
  11. ```
  12. With this, `work:@corp/lib@^2.0.0` resolves against `https://npm.work.example.com/`. [#11324](https://github.com/pnpm/pnpm/issues/11324).
  13. * Allow setting sbom spec version using `--sbom-spec-version` [#11389](https://github.com/pnpm/pnpm/pull/11389).
  14. * Add `--no-runtime` flag (config: `runtime=false`) to skip installing runtime entries (e.g. Node.js downloaded via `devEngines.runtime`) without modifying the lockfile. The lockfile keeps the runtime entry so frozen-lockfile validation still passes; only the runtime fetch and `.bin` linking are skipped. Useful in CI matrices where the runtime is provisioned externally (e.g. via `pnpm runtime -g set node <version>`) before `pnpm install` runs.
  15. * Added the `pnpm bugs` command that opens a package's bug tracker URL in the browser. With no arguments, it reads the current project's `package.json`; with one or more package names, it fetches each package's metadata from the registry and opens its bug tracker. Falls back to `<repository>/issues` when the `bugs` field is missing [#11279](https://github.com/pnpm/pnpm/pull/11279).
  16. * Added `pnpm owner` command to manage package owners on the registry.
  17. ## Patch Changes
  18. * Added "published X ago by Y" information to the `pnpm view` command output, similar to `npm view`. This is useful when comparing against `minimumReleaseAge`.
  19. For example, `pnpm view pnpm` now shows:
  20. ```
  21. published 17 hours ago by GitHub Actions
  22. ```
  23. * `pnpm publish` now honors the configured HTTP/HTTPS proxy (including `https_proxy`/`http_proxy`/`no_proxy` environment variables) when polling the registry's `doneUrl` during the web-based authentication flow. Previously the poll bypassed the proxy, causing the registry to respond `403` from a different source IP and the login to never complete [#11561](https://github.com/pnpm/pnpm/issues/11561).
  24. * `pnpm add -g` now installs each space-separated package into its own isolated directory by default. To bundle multiple packages into the same isolated install (so that they share dependencies and are removed together), pass them as a comma-separated list. For example:
  25. * `pnpm add -g foo bar` installs `foo` and `bar` as two independent globals — removing one does not affect the other.
  26. * `pnpm add -g foo,bar qar` bundles `foo` and `bar` into a single isolated install while `qar` is installed on its own.
  27. Related: [#11587](https://github.com/pnpm/pnpm/issues/11587).
  28. * `pnpm runtime set <name> <version>` no longer fails in the root of a multi-package workspace with the `ADDING_TO_ROOT` error. Installing the workspace root is a valid target for a runtime, so the command now bypasses that safety check.
  29. * Fix `pnpm --version` hanging for the lifetime of the worker pool after the version was printed. `main.ts`'s `--version` short-circuit returned before reaching the command-handler `finally` that calls `finishWorkers()`, so the worker pool that `switchCliVersion` had spawned during integrity resolution stayed alive and held the Node event loop open. The CLI entry now runs `finishWorkers()` from its own `finally`, so every exit path tears the pool down.
  30. Repro: `pnpm --version` in a workspace whose `devEngines.packageManager` version already matches the running pnpm + `onFail: "download"`. `switchCliVersion` resolves the integrity (spawning workers), finds nothing to swap, returns. The version prints, then the process hangs.
  31. <!-- sponsors -->
  32. ## Platinum Sponsors
  33. <table>
  34. <tbody>
  35. <tr>
  36. <td align="center" valign="middle">
  37. <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>
  38. </td>
  39. </tr>
  40. </tbody>
  41. </table>
  42. ## Gold Sponsors
  43. <table>
  44. <tbody>
  45. <tr>
  46. <td align="center" valign="middle">
  47. <a href="https://sanity.io/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
  48. <picture>
  49. <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/sanity.svg" />
  50. <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/sanity_light.svg" />
  51. <img src="https://pnpm.io/img/users/sanity.svg" width="120" alt="Sanity" />
  52. </picture>
  53. </a>
  54. </td>
  55. <td align="center" valign="middle">
  56. <a href="https://discord.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
  57. <picture>
  58. <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/discord.svg" />
  59. <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/discord_light.svg" />
  60. <img src="https://pnpm.io/img/users/discord.svg" width="220" alt="Discord" />
  61. </picture>
  62. </a>
  63. </td>
  64. <td align="center" valign="middle">
  65. <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>
  66. </td>
  67. </tr>
  68. <tr>
  69. <td align="center" valign="middle">
  70. <a href="https://serpapi.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
  71. <picture>
  72. <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/serpapi_dark.svg" />
  73. <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/serpapi_light.svg" />
  74. <img src="https://pnpm.io/img/users/serpapi_dark.svg" width="160" alt="SerpApi" />
  75. </picture>
  76. </a>
  77. </td>
  78. <td align="center" valign="middle">
  79. <a href="https://coderabbit.ai/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
  80. <picture>
  81. <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/coderabbit.svg" />
  82. <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/coderabbit_light.svg" />
  83. <img src="https://pnpm.io/img/users/coderabbit.svg" width="220" alt="CodeRabbit" />
  84. </picture>
  85. </a>
  86. </td>
  87. <td align="center" valign="middle">
  88. <a href="https://stackblitz.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
  89. <picture>
  90. <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/stackblitz.svg" />
  91. <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/stackblitz_light.svg" />
  92. <img src="https://pnpm.io/img/users/stackblitz.svg" width="190" alt="Stackblitz" />
  93. </picture>
  94. </a>
  95. </td>
  96. </tr>
  97. <tr>
  98. <td align="center" valign="middle">
  99. <a href="https://workleap.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
  100. <picture>
  101. <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/workleap.svg" />
  102. <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/workleap_light.svg" />
  103. <img src="https://pnpm.io/img/users/workleap.svg" width="190" alt="Workleap" />
  104. </picture>
  105. </a>
  106. </td>
  107. <td align="center" valign="middle">
  108. <a href="https://nx.dev/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
  109. <picture>
  110. <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/nx.svg" />
  111. <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/nx_light.svg" />
  112. <img src="https://pnpm.io/img/users/nx.svg" width="50" alt="Nx" />
  113. </picture>
  114. </a>
  115. </td>
  116. </tr>
  117. </tbody>
  118. </table>
  119. <!-- sponsors end -->

auf github ansehenimported 2026-09-28 über npm