What’s New

pnpm v12.0.0-beta.3

v12.0.0-beta.3Pre-release

pnpm 12 Beta 3

Changed 4
  • Dependency resolution is faster by filtering package metadata once per packument instead of once per dependency edge when minimumReleaseAge is active
  • Parsed semver versions and ranges are now reused instead of re-parsed on every comparison
  • Reduced memory use when resolving peer-heavy dependency graphs
  • Prevented nested hoisted graphs from expanding into excessive dependency paths
Fixed 4
  • With excludeLinksFromLockfile enabled, a link: dependency pointing inside the workspace is no longer treated as an external link when it resolves a peer dependency, so the peer suffixes it produces stay identical to an install with the setting off
  • Injected (file:) workspace dependencies are no longer affected by the excludeLinksFromLockfile setting
  • A registry dependency is now always recorded in pnpm-lock.yaml with an integrity hash, including under --lockfile-only
  • Packages from a registry that publishes no subresource-integrity metadata are no longer recorded without an integrity hash, preventing ERR_PNPM_MISSING_TARBALL_INTEGRITY errors on subsequent pnpm install --frozen-lockfile
Patch Changes
  • With excludeLinksFromLockfile enabled, a link: dependency pointing inside the workspace is no longer treated as an external link when it resolves a peer dependency, so the peer suffixes it produces stay identical to an install with the setting off. Injected (file:) workspace dependencies are no longer affected by the setting either #13556.

  • A registry dependency is now always recorded in pnpm-lock.yaml with an integrity hash, including under --lockfile-only. Packages from a registry that publishes no subresource-integrity metadata — https://node-registry.bit.cloud/, for one — were recorded without one, so the next pnpm install --frozen-lockfile failed with ERR_PNPM_MISSING_TARBALL_INTEGRITY #13547.

  • Dependency resolution is faster: package metadata is now filtered once per packument instead of once per dependency edge when minimumReleaseAge is active, and parsed semver versions and ranges are reused instead of re-parsed on every comparison.

  • Reduced memory use when resolving peer-heavy dependency graphs and prevented nested hoisted graphs from expanding into excessive dependency paths.

View original

Discussion