From a5a7c8d1e78de47f2a504b0a5763500d69da73a1 Mon Sep 17 00:00:00 2001 From: Miroslav Jonas Date: Fri, 16 Dec 2022 14:57:25 +0100 Subject: [PATCH] fix(core): skip npm nested lockfile key mismatch --- packages/nx/src/lock-file/npm.ts | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/packages/nx/src/lock-file/npm.ts b/packages/nx/src/lock-file/npm.ts index cf86c697922cf..291a335c9b640 100644 --- a/packages/nx/src/lock-file/npm.ts +++ b/packages/nx/src/lock-file/npm.ts @@ -114,13 +114,21 @@ function mapPackages( if (lockfileVersion === 2) { const path = packagePath.split(/\/?node_modules\//).slice(1); - path.forEach((proj) => { - if (!dependency) { - dependency = dependencies[proj]; + let index = 1; + dependency = dependencies[path[0]]; + while (index < path.length) { + // the root lockfile might not match the nested project's lockfile + // given path might not exist in the root lockfile + if ( + dependency?.dependencies && + dependency.dependencies[path[index]] + ) { + dependency = dependency.dependencies[path[index]]; + index++; } else { - dependency = dependency.dependencies[proj]; + break; } - }); + } // if versions are same, no need to track it further if (dependency && value.version === dependency.version) { dependency = undefined;