From 4241bc148fc24bc8bc4d5ece0c7b50d278bac257 Mon Sep 17 00:00:00 2001 From: Zoltan Kochan Date: Wed, 14 Oct 2020 22:09:48 +0300 Subject: [PATCH] fix: missing peer dependencies should never be cached ref #2919 --- .changeset/cool-bulldogs-tease.md | 5 +++++ packages/resolve-dependencies/src/resolvePeers.ts | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 .changeset/cool-bulldogs-tease.md diff --git a/.changeset/cool-bulldogs-tease.md b/.changeset/cool-bulldogs-tease.md new file mode 100644 index 0000000000..c885992928 --- /dev/null +++ b/.changeset/cool-bulldogs-tease.md @@ -0,0 +1,5 @@ +--- +"@pnpm/resolve-dependencies": patch +--- + +When a peer dependency is not resolved but is available through `require()`, don't print a warning but still consider it to be missing. diff --git a/packages/resolve-dependencies/src/resolvePeers.ts b/packages/resolve-dependencies/src/resolvePeers.ts index fa07acaf18..9dab3e0436 100644 --- a/packages/resolve-dependencies/src/resolvePeers.ts +++ b/packages/resolve-dependencies/src/resolvePeers.ts @@ -360,6 +360,7 @@ function resolvePeers ( let resolved = ctx.parentPkgs[peerName] if (!resolved) { + missingPeers.push(peerName) try { const { version } = importFrom(ctx.rootDir, `${peerName}/package.json`) as { version: string } resolved = { @@ -367,7 +368,6 @@ function resolvePeers ( version, } } catch (err) { - missingPeers.push(peerName) if ( ctx.resolvedPackage.peerDependenciesMeta?.[peerName]?.optional === true ) {