From ba93356018d723ea1353f38ecc70e6beacb4af18 Mon Sep 17 00:00:00 2001 From: Zoltan Kochan Date: Fri, 30 Jun 2023 22:12:29 +0300 Subject: [PATCH] fix(resolve-dependencies): prefer versions found in parent packages only (#6742) close #6737 --- .changeset/rare-items-search.md | 6 ++++++ pkg-manager/resolve-dependencies/src/resolveDependencies.ts | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 .changeset/rare-items-search.md diff --git a/.changeset/rare-items-search.md b/.changeset/rare-items-search.md new file mode 100644 index 0000000000..845263f7bf --- /dev/null +++ b/.changeset/rare-items-search.md @@ -0,0 +1,6 @@ +--- +"@pnpm/resolve-dependencies": patch +"pnpm": patch +--- + +Prefer versions found in parent package dependencies only [#6737](https://github.com/pnpm/pnpm/issues/6737). diff --git a/pkg-manager/resolve-dependencies/src/resolveDependencies.ts b/pkg-manager/resolve-dependencies/src/resolveDependencies.ts index 9566c89ab0..6679406bb3 100644 --- a/pkg-manager/resolve-dependencies/src/resolveDependencies.ts +++ b/pkg-manager/resolve-dependencies/src/resolveDependencies.ts @@ -533,8 +533,8 @@ export async function resolveDependencies ( } const resolvedPackage = ctx.resolvedPackagesByDepPath[pkgAddress.depPath] if (!resolvedPackage) continue // This will happen only with linked dependencies - if (!newPreferredVersions[resolvedPackage.name]) { - newPreferredVersions[resolvedPackage.name] = {} + if (!Object.prototype.hasOwnProperty.call(newPreferredVersions, resolvedPackage.name)) { + newPreferredVersions[resolvedPackage.name] = { ...preferredVersions[resolvedPackage.name] } } if (!newPreferredVersions[resolvedPackage.name][resolvedPackage.version]) { newPreferredVersions[resolvedPackage.name][resolvedPackage.version] = 'version'