diff --git a/.changeset/flat-lamps-kick.md b/.changeset/flat-lamps-kick.md new file mode 100644 index 0000000000..9d030b0c77 --- /dev/null +++ b/.changeset/flat-lamps-kick.md @@ -0,0 +1,5 @@ +--- +"@pnpm/resolve-dependencies": patch +--- + +Peer dependencies should get correctly resolved even in optional dependencies that will be skipped on the active system. diff --git a/packages/resolve-dependencies/src/resolvePeers.ts b/packages/resolve-dependencies/src/resolvePeers.ts index ee172a7841..a17a0929dd 100644 --- a/packages/resolve-dependencies/src/resolvePeers.ts +++ b/packages/resolve-dependencies/src/resolvePeers.ts @@ -360,7 +360,7 @@ function resolvePeers ( let resolved = ctx.parentPkgs[peerName] - if (!resolved || resolved.nodeId && !ctx.dependenciesTree[resolved.nodeId].installable) { + if (!resolved) { try { const { version } = importFrom(ctx.rootDir, `${peerName}/package.json`) as { version: string } resolved = {