Zum Inhalt springen
verdict:

pnpm 12.13.0

notable

note: die Zusammenfassung und die Release Notes sind auf Englisch

pending: Zusammenfassung in der Warteschlange

Erkannt am 2026-10-14 um 02:31 UTC. Zusammenfassungen kommen meist innerhalb weniger Stunden; die vollständigen Release Notes stehen schon hier unten.

release-notesgithub.com/pnpm/pnpm · 167 Zeilen
  1. This release adds the `pnpm profile` and `pnpm token` commands, the `storeIndexFormat: files` setting for stores shared over a network filesystem, and faster Python dependency resolution.
  2. ### Minor Changes
  3. - Added the `pnpm profile` command to view and update registry user profile settings.
  4. - Added `pnpm token` to list, create, and revoke authentication tokens on the registry.
  5. - Added the `storeIndexFormat` setting. Set it to `files` to keep a store's package index as one file per package instead of the SQLite `index.db`, for a store on a network filesystem that several machines use at once. SQLite's locking does not work across machines, so concurrent installs on such a store could corrupt `index.db`.
  6. - Added the `nodePackageMap` setting, which groups the package-map settings. `nodePackageMap.mode: write-only` writes `node_modules/.package-map.json` for other tools without making Node.js load it. `mode: load` also makes Node.js load the map, like `nodeExperimentalPackageMap: true`. `nodePackageMap.type` replaces `nodePackageMapType`. The old settings still work [#14937](https://github.com/pnpm/pnpm/issues/14937).
  7. ```yaml
  8. nodePackageMap:
  9. mode: write-only
  10. type: loose
  11. ```
  12. ### Patch Changes
  13. #### Setting up pnpm
  14. - `pnpm setup` now works when pnpm was installed with npm on macOS. It installed pnpm from npm's `bin` directory and left a `$PNPM_HOME/bin/pnpm` that could not run [#16855](https://github.com/pnpm/pnpm/issues/16855).
  15. - pnpm runs again after `pnpm setup` when `globalShims` enables pnpm. Every command failed with "the global target of the pnpm shim points back at the shim" [#16874](https://github.com/pnpm/pnpm/issues/16874).
  16. - A pnpm built for the MinGW target on Windows, such as the MSYS2 package, now installs the MinGW Rust toolchain that `rust-toolchain.toml` names. It used to install the MSVC toolchain.
  17. #### Installing packages
  18. - On macOS, `pnpm install` no longer fails with `ERR_PNPM_LOCKFILE_WRITE_FILE` when the project is on a virtiofs or SMB share. pnpm now falls back to a regular `fsync` when the file system rejects a full sync [#16846](https://github.com/pnpm/pnpm/issues/16846).
  19. - On macOS, `pnpm install`, `pnpm patch-commit`, and other commands that load a pnpmfile no longer hang at random.
  20. - `pnpm install` now puts the executables of a Python build backend's requirements on the `PATH` while the backend runs. Projects built with `uv_build` now install. Before, they failed with "uv-build was not properly installed".
  21. - Removing a `link:` dependency now also removes its symlink from `node_modules` when `nodeLinker` is `hoisted` [#16884](https://github.com/pnpm/pnpm/issues/16884).
  22. - `pnpm-lock.yaml` no longer records the tarball URL of a package installed from a scoped registry, such as one set by `@types:registry=`, when pnpm can rebuild the URL from that registry [#16866](https://github.com/pnpm/pnpm/issues/16866).
  23. #### Packing, auditing, and pipelines
  24. - `pnpm pack` and `pnpm publish` now pack only `package.json`, the README, the license, and the files named in `main` and `bin` when `files` is an empty array. They used to pack every file in the package [#16889](https://github.com/pnpm/pnpm/issues/16889).
  25. - `pnpm audit` and `pnpm audit signatures` no longer check runtimes installed through `devEngines.runtime`, such as `node@runtime:24.21.0`, against the npm package of the same name. `pnpm audit signatures` reported these runtimes as having an invalid registry signature [#16869](https://github.com/pnpm/pnpm/issues/16869).
  26. - `pnpm pipeline` now runs the root's tasks when `pnpm-workspace.yaml` lists only the root in `packages` or omits `packages`, as `pnpm -r run` does. A change to a root file in such a workspace no longer triggers a full-run warning. When a full run has no projects to run, `pnpm pipeline` now reports that no projects are selected [#16849](https://github.com/pnpm/pnpm/issues/16849).
  27. #### Performance
  28. - `pnpm install` resolves Python dependencies faster. With `--lockfile-only`, a project with 10 dependencies now resolves in about 4 seconds, down from about 40. When the index publishes a metadata file beside each wheel (PEP 658), as PyPI does, pnpm downloads only the wheels of the releases it selects.
  29. - A repeat install against an existing lockfile no longer reads registry metadata for the dependencies it takes from that lockfile. On a warm store this removes thousands of metadata lookups from a repeat install of a large workspace.
  30. - `pnpm install` with `enableModulesDir: false` now verifies the packages already in the store while the dependencies resolve, and checks a package's files in parallel. On a 5,100-package install with the store on a network filesystem, this removed a 19-second pause between resolution and fetching.
  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" rel="noopener noreferrer"><img src="https://pnpm.io/img/users/bit.svg" width="80" alt="Bit"></a>
  38. </td>
  39. <td align="center" valign="middle">
  40. <a href="https://openai.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer">
  41. <picture>
  42. <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/openai_dark.svg" />
  43. <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/openai_light.svg" />
  44. <img src="https://pnpm.io/img/users/openai_dark.svg" width="160" alt="OpenAI" />
  45. </picture>
  46. </a>
  47. </td>
  48. <td align="center" valign="middle">
  49. <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>
  50. </td>
  51. </tr>
  52. <tr>
  53. <td align="center" valign="middle">
  54. <a href="https://coderabbit.ai/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer">
  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. </tr>
  63. </tbody>
  64. </table>
  65. ## Gold Sponsors
  66. <table>
  67. <tbody>
  68. <tr>
  69. <td align="center" valign="middle">
  70. <a href="https://sanity.io/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer">
  71. <picture>
  72. <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/sanity.svg" />
  73. <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/sanity_light.svg" />
  74. <img src="https://pnpm.io/img/users/sanity.svg" width="120" alt="Sanity" />
  75. </picture>
  76. </a>
  77. </td>
  78. <td align="center" valign="middle">
  79. <a href="https://discord.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer">
  80. <picture>
  81. <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/discord.svg" />
  82. <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/discord_light.svg" />
  83. <img src="https://pnpm.io/img/users/discord.svg" width="220" alt="Discord" />
  84. </picture>
  85. </a>
  86. </td>
  87. <td align="center" valign="middle">
  88. <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>
  89. </td>
  90. </tr>
  91. <tr>
  92. <td align="center" valign="middle">
  93. <a href="https://serpapi.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer">
  94. <picture>
  95. <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/serpapi_dark.svg" />
  96. <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/serpapi_light.svg" />
  97. <img src="https://pnpm.io/img/users/serpapi_dark.svg" width="160" alt="SerpApi" />
  98. </picture>
  99. </a>
  100. </td>
  101. <td align="center" valign="middle">
  102. <a href="https://stackblitz.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer">
  103. <picture>
  104. <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/stackblitz.svg" />
  105. <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/stackblitz_light.svg" />
  106. <img src="https://pnpm.io/img/users/stackblitz.svg" width="190" alt="Stackblitz" />
  107. </picture>
  108. </a>
  109. </td>
  110. <td align="center" valign="middle">
  111. <a href="https://workleap.com/?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/workleap.svg" />
  114. <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/workleap_light.svg" />
  115. <img src="https://pnpm.io/img/users/workleap.svg" width="190" alt="Workleap" />
  116. </picture>
  117. </a>
  118. </td>
  119. </tr>
  120. <tr>
  121. <td align="center" valign="middle">
  122. <a href="https://nx.dev/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer">
  123. <picture>
  124. <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/nx.svg" />
  125. <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/nx_light.svg" />
  126. <img src="https://pnpm.io/img/users/nx.svg" width="50" alt="Nx" />
  127. </picture>
  128. </a>
  129. </td>
  130. <td align="center" valign="middle">
  131. <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>
  132. </td>
  133. </tr>
  134. </tbody>
  135. </table>
  136. <!-- sponsors end -->

auf github ansehendetected 2026-10-14 über npm