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'