diff --git a/lib/manager/npm/extract/monorepo.js b/lib/manager/npm/extract/monorepo.js index 66137cfbb44f28b121c28f85129074ee1bf30c8b..55752c02f69e3f8833c90edf2bcb12abb4fa4931 100644 --- a/lib/manager/npm/extract/monorepo.js +++ b/lib/manager/npm/extract/monorepo.js @@ -54,6 +54,10 @@ function detectMonorepos(packageFiles) { subPackage.lernaClient = lernaClient; subPackage.yarnLock = subPackage.yarnLock || yarnLock; subPackage.npmLock = subPackage.npmLock || npmLock; + // istanbul ignore if + if (subPackage.yarnLock) { + subPackage.hasYarnWorkspaces = !!yarnWorkspacesPackages; + } } } } diff --git a/lib/manager/npm/post-update/index.js b/lib/manager/npm/post-update/index.js index 720f235b2f715c817c8b0465c911a9ba32b77b02..6734a858eb0cf547b8ba52fe3480780d9898dc73 100644 --- a/lib/manager/npm/post-update/index.js +++ b/lib/manager/npm/post-update/index.js @@ -78,6 +78,12 @@ function determineLockFileDirs(config, packageFiles) { if (packageFile.lernaDir && packageFile.npmLock) { logger.debug(`${packageFile.packageFile} has lerna lock file`); lernaDirs.push(packageFile.lernaDir); + } else if ( + packageFile.lernaDir && + packageFile.yarnLock && + !packageFile.hasYarnWorkspaces + ) { + lernaDirs.push(packageFile.lernaDir); } else { // push full lock file names and convert them later yarnLockDirs.push(packageFile.yarnLock);