Files
pnpm/.changeset/recursive-list-json.md
Benjamin StaneckandZoltan Kochan aaf1e11305 fix(list): combine recursive JSON results (#15012)
Separate project lockfiles require loading each dependency hierarchy with
its own lockfile directory. Keep those typed results until the recursive
JSON renderer can serialize the complete array once. Joining independently
serialized arrays produces invalid JSON.

Reuse the existing loaders and renderers in both CLI implementations.
Extract the v11 typed listing loader for the recursive caller, and keep
Rust recursive orchestration in its own module within the file-size limit.

Resolve each project's modules directory in every output format of a
workspace whose projects keep their own lockfiles. Use the existing
project configuration helpers to apply packageConfigs without leaking
settings between projects, and look an entry up only under a name the
project declares. Preserve per-project error context during loading and
existing text formatting.

Add command-level regressions that parse complete stdout and verify
project-specific package paths and metadata. Canonicalize filesystem paths
in assertions so equivalent Windows separators do not fail the tests.

Closes pnpm/pnpm#15011.

---------

Co-authored-by: Zoltan Kochan <z@kochan.io>
2026-09-19 01:19:39 +02:00

522 B

@pnpm/deps.inspection.commands, @pnpm/deps.inspection.list, pnpm, pacquet
@pnpm/deps.inspection.commands @pnpm/deps.inspection.list pnpm pacquet
patch patch patch patch

pnpm -r list --json now prints one JSON array. It printed a separate array for each project when sharedWorkspaceLockfile was false, so the output could not be parsed.

pnpm -r list now reads each project's own modules directory when the projects keep their own lockfiles, so --long and --parseable report the packages that project installed #15011.