pnpm 11.19
- pnpm login no longer requires an interactive terminal when the registry supports web-based login; without a TTY it prints the authentication URL and polls the registry until the browser approval completes
- The save-prefix setting now accepts = to save newly added dependencies with an explicit = operator instead of silently treating it as the default ^
- allowBuilds entries can now approve git-hosted packages downloaded as a tarball by their repository URL without the resolved commit hash
- pnpm outdated --include-github-actions no longer blocks on an interactive git credential prompt when a workflow uses a private action repo
- Prevented minimumReleaseAge from replacing latest with a SemVer-greater version than the registry tag target
- Fixed empty bundledDependencies and bundleDependencies arrays causing nondeterministic lockfile changes
- The install summary no longer prints (X is available) when the registry's dist-tags.latest is held back by the active minimumReleaseAge policy
- pnpm update keeps the explicit = operator of an exact version pin instead of converting it to a bare version
- Preserve a workspace dependency's link: entry when a run does not target it with injectWorkspacePackages instead of spuriously rewriting it to a peer-suffixed file: protocol
- Workspace dependencies declared with a relative path are no longer silently dropped from the workspace projects graph so --filter selection and topological order of recursive commands take them into account
Minor Changes
-
pnpm loginno longer requires an interactive terminal when the registry supports web-based login: without a TTY it prints the authentication URL (skipping the QR code and the "Press ENTER to open the URL in your browser" prompt) and polls the registry until the browser approval completes. Only the classic username/password login still fails withERR_PNPM_LOGIN_NON_INTERACTIVEin a non-interactive terminal. -
The
save-prefixsetting now accepts=: newly added dependencies are saved with an explicit=operator (=1.2.3) instead of the setting being silently treated as the default^.
Patch Changes
-
allowBuildsentries can now approve git-hosted packages that pnpm downloads as a tarball, such asgithub:dependencies (which are fetched fromcodeload.github.comrather than cloned), by their repository URL without the resolved commit hash. This matches the hashlessgit+matching already supported for cloned git dependencies. For example:allowBuilds: "foo@git+https://github.com/org/foo.git": trueThis approves the package whether pnpm clones it or downloads a tarball, so the entry no longer has to be updated every time the pinned commit changes. GitLab and Bitbucket tarball downloads are matched the same way. Approving or denying a specific resolved commit by its full tarball dep path continues to work.
-
pnpm outdated --include-github-actionsno longer blocks on an interactive git credential prompt when a workflow uses a private action repo. -
Prevented
minimumReleaseAgefrom replacinglatestwith a SemVer-greater version than the registry tag target #13034. -
Fixed empty
bundledDependenciesandbundleDependenciesarrays causing nondeterministic lockfile changes. See pnpm/pnpm#13123. -
The install summary no longer prints
(X is available)when the registry'sdist-tags.latestis still held back by the activeminimumReleaseAgepolicy. The hint only ever names the actual latest tag, so an immature latest suppresses the hint instead of advertising the version pnpm just refused to install #11698. -
pnpm updatekeeps the explicit=operator of an exact version pin: a dependency saved as=3.5.1now updates to=3.5.2instead of the bare3.5.2. See pnpm/pnpm#13168. -
Preserve a workspace dependency's
link:entry when a run does not target it — e.g.pnpm update <other-pkg>(with or without--recursive), or a plain install after a root/catalog dependency change — withinjectWorkspacePackages, instead of spuriously rewriting it to a peer-suffixedfile:protocol. See pnpm/pnpm#10433. -
Workspace dependencies declared with a relative path (e.g.
"foo": "workspace:../foo") are no longer silently dropped from the workspace projects graph, so--filterselection and the topological order of recursive commands take them into account.