From bde7cd164845deea79e0c138ab4cbea9db59209c Mon Sep 17 00:00:00 2001 From: Zoltan Kochan Date: Wed, 14 Oct 2020 18:34:06 +0300 Subject: [PATCH] fix: peers resolution of skipped optional dependencies --- .changeset/flat-lamps-kick.md | 5 +++++ packages/resolve-dependencies/src/resolvePeers.ts | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 .changeset/flat-lamps-kick.md 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 = {