diff --git a/.changeset/cool-carpets-search.md b/.changeset/cool-carpets-search.md new file mode 100644 index 0000000000..0930d210f4 --- /dev/null +++ b/.changeset/cool-carpets-search.md @@ -0,0 +1,5 @@ +--- +"@pnpm/resolve-dependencies": patch +--- + +Resolve subdependencies only after all parent dependencies were resolved. diff --git a/packages/resolve-dependencies/src/resolveDependencies.ts b/packages/resolve-dependencies/src/resolveDependencies.ts index 83f08dd062..03404d1dcb 100644 --- a/packages/resolve-dependencies/src/resolveDependencies.ts +++ b/packages/resolve-dependencies/src/resolveDependencies.ts @@ -324,10 +324,10 @@ export default async function resolveDependencies ( if (postponedResolutionsQueue) { postponedResolutionsQueue.push(resolveChildren) + } else { + await resolveChildren(options.preferredVersions) } - await resolveChildren(options.preferredVersions) - return resolveDependencyResult }) )