From 5e0e7f5dbbd345fee4c3473bb20c7348ce0738a6 Mon Sep 17 00:00:00 2001 From: Zoltan Kochan Date: Thu, 30 Jun 2022 11:55:42 +0300 Subject: [PATCH] fix: partial install in workspace with patches should not fail (#4956) close #4954 --- .changeset/cold-toes-push.md | 6 ++++++ packages/resolve-dependencies/src/index.ts | 6 +++++- 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 .changeset/cold-toes-push.md diff --git a/.changeset/cold-toes-push.md b/.changeset/cold-toes-push.md new file mode 100644 index 00000000000..4392ef36f4e --- /dev/null +++ b/.changeset/cold-toes-push.md @@ -0,0 +1,6 @@ +--- +"@pnpm/resolve-dependencies": patch +"pnpm": patch +--- + +`pnpm install` in a workspace with patches should not fail when doing partial installation [#4954](https://github.com/pnpm/pnpm/issues/4954). diff --git a/packages/resolve-dependencies/src/index.ts b/packages/resolve-dependencies/src/index.ts index 42d0769b6e6..80fe2115278 100644 --- a/packages/resolve-dependencies/src/index.ts +++ b/packages/resolve-dependencies/src/index.ts @@ -103,7 +103,11 @@ export default async function ( } = await resolveDependencyTree(projectsToResolve, opts) // We only check whether patches were applied in cases when the whole lockfile was reanalyzed. - if (opts.patchedDependencies && (opts.forceFullResolution || !opts.wantedLockfile.packages?.length)) { + if ( + opts.patchedDependencies && + (opts.forceFullResolution || !opts.wantedLockfile.packages?.length) && + Object.keys(opts.wantedLockfile.importers).length === importers.length + ) { verifyPatches(Object.keys(opts.patchedDependencies), appliedPatches) }