diff --git a/lib/manager/npm/extract/__snapshots__/index.spec.ts.snap b/lib/manager/npm/extract/__snapshots__/index.spec.ts.snap
index acfa5e2ed80e6af26a7fec670f9100af889c9380..b071d9868a4c09321003c9afa3f154075efd6005 100644
--- a/lib/manager/npm/extract/__snapshots__/index.spec.ts.snap
+++ b/lib/manager/npm/extract/__snapshots__/index.spec.ts.snap
@@ -13,8 +13,10 @@ Object {
   ],
   "ignoreNpmrcFile": undefined,
   "lernaClient": undefined,
-  "lernaJsonFile": undefined,
   "lernaPackages": undefined,
+  "managerData": Object {
+    "lernaJsonFile": undefined,
+  },
   "npmLock": undefined,
   "npmrc": undefined,
   "packageFileVersion": undefined,
@@ -135,8 +137,10 @@ Object {
   ],
   "ignoreNpmrcFile": undefined,
   "lernaClient": undefined,
-  "lernaJsonFile": undefined,
   "lernaPackages": undefined,
+  "managerData": Object {
+    "lernaJsonFile": undefined,
+  },
   "npmLock": undefined,
   "npmrc": undefined,
   "packageFileVersion": undefined,
@@ -297,8 +301,10 @@ Object {
   ],
   "ignoreNpmrcFile": undefined,
   "lernaClient": undefined,
-  "lernaJsonFile": undefined,
   "lernaPackages": undefined,
+  "managerData": Object {
+    "lernaJsonFile": undefined,
+  },
   "npmLock": undefined,
   "npmrc": undefined,
   "packageFileVersion": undefined,
@@ -345,8 +351,10 @@ Object {
   ],
   "ignoreNpmrcFile": undefined,
   "lernaClient": undefined,
-  "lernaJsonFile": undefined,
   "lernaPackages": undefined,
+  "managerData": Object {
+    "lernaJsonFile": undefined,
+  },
   "npmLock": undefined,
   "npmrc": undefined,
   "packageFileVersion": undefined,
@@ -404,8 +412,10 @@ Object {
   ],
   "ignoreNpmrcFile": undefined,
   "lernaClient": undefined,
-  "lernaJsonFile": undefined,
   "lernaPackages": undefined,
+  "managerData": Object {
+    "lernaJsonFile": undefined,
+  },
   "npmLock": undefined,
   "npmrc": undefined,
   "packageFileVersion": undefined,
@@ -457,8 +467,10 @@ Object {
   ],
   "ignoreNpmrcFile": undefined,
   "lernaClient": undefined,
-  "lernaJsonFile": undefined,
   "lernaPackages": undefined,
+  "managerData": Object {
+    "lernaJsonFile": undefined,
+  },
   "npmLock": undefined,
   "npmrc": undefined,
   "packageFileVersion": undefined,
@@ -592,8 +604,10 @@ Object {
   ],
   "ignoreNpmrcFile": undefined,
   "lernaClient": "npm",
-  "lernaJsonFile": "lerna.json",
   "lernaPackages": undefined,
+  "managerData": Object {
+    "lernaJsonFile": "lerna.json",
+  },
   "npmLock": undefined,
   "npmrc": undefined,
   "packageFileVersion": "1.0.0",
@@ -727,8 +741,10 @@ Object {
   ],
   "ignoreNpmrcFile": undefined,
   "lernaClient": "yarn",
-  "lernaJsonFile": "lerna.json",
   "lernaPackages": undefined,
+  "managerData": Object {
+    "lernaJsonFile": "lerna.json",
+  },
   "npmLock": undefined,
   "npmrc": undefined,
   "packageFileVersion": "1.0.0",
@@ -862,8 +878,10 @@ Object {
   ],
   "ignoreNpmrcFile": undefined,
   "lernaClient": undefined,
-  "lernaJsonFile": undefined,
   "lernaPackages": undefined,
+  "managerData": Object {
+    "lernaJsonFile": undefined,
+  },
   "npmLock": undefined,
   "npmrc": undefined,
   "packageFileVersion": "1.0.0",
@@ -883,8 +901,10 @@ Object {
   "deps": Array [],
   "ignoreNpmrcFile": undefined,
   "lernaClient": "npm",
-  "lernaJsonFile": "lerna.json",
   "lernaPackages": undefined,
+  "managerData": Object {
+    "lernaJsonFile": "lerna.json",
+  },
   "npmLock": undefined,
   "npmrc": undefined,
   "packageFileVersion": "0.0.8",
@@ -1020,8 +1040,10 @@ Object {
   ],
   "ignoreNpmrcFile": undefined,
   "lernaClient": "npm",
-  "lernaJsonFile": "lerna.json",
   "lernaPackages": undefined,
+  "managerData": Object {
+    "lernaJsonFile": "lerna.json",
+  },
   "npmLock": undefined,
   "npmrc": undefined,
   "packageFileVersion": "1.0.0",
@@ -1041,8 +1063,10 @@ Object {
   "deps": Array [],
   "ignoreNpmrcFile": undefined,
   "lernaClient": "npm",
-  "lernaJsonFile": "lerna.json",
   "lernaPackages": undefined,
+  "managerData": Object {
+    "lernaJsonFile": "lerna.json",
+  },
   "npmLock": undefined,
   "npmrc": undefined,
   "packageFileVersion": "0.0.8",
@@ -1064,8 +1088,10 @@ Object {
   "deps": Array [],
   "ignoreNpmrcFile": undefined,
   "lernaClient": undefined,
-  "lernaJsonFile": undefined,
   "lernaPackages": undefined,
+  "managerData": Object {
+    "lernaJsonFile": undefined,
+  },
   "npmLock": undefined,
   "npmrc": undefined,
   "packageFileVersion": "0.0.8",
@@ -1201,8 +1227,10 @@ Object {
   ],
   "ignoreNpmrcFile": undefined,
   "lernaClient": undefined,
-  "lernaJsonFile": undefined,
   "lernaPackages": undefined,
+  "managerData": Object {
+    "lernaJsonFile": undefined,
+  },
   "npmLock": undefined,
   "npmrc": undefined,
   "packageFileVersion": "1.0.0",
diff --git a/lib/manager/npm/extract/__snapshots__/monorepo.spec.ts.snap b/lib/manager/npm/extract/__snapshots__/monorepo.spec.ts.snap
index 9f2ae33089c893333341b6871f91e03ad11fcf38..ff40517e6df8d13d99717a6c010f5e88182c2c6e 100644
--- a/lib/manager/npm/extract/__snapshots__/monorepo.spec.ts.snap
+++ b/lib/manager/npm/extract/__snapshots__/monorepo.spec.ts.snap
@@ -17,10 +17,12 @@ Array [
         "depName": "foo",
       },
     ],
-    "lernaJsonFile": "lerna.json",
     "lernaPackages": Array [
       "packages/*",
     ],
+    "managerData": Object {
+      "lernaJsonFile": "lerna.json",
+    },
     "packageFile": "package.json",
     "packages": Array [
       "packages/*",
@@ -39,7 +41,9 @@ Array [
       },
     ],
     "lernaClient": undefined,
-    "lernaJsonFile": "lerna.json",
+    "managerData": Object {
+      "lernaJsonFile": "lerna.json",
+    },
     "npmLock": undefined,
     "packageFile": "packages/a/package.json",
     "packageJsonName": "@org/a",
@@ -47,7 +51,9 @@ Array [
   },
   Object {
     "lernaClient": undefined,
-    "lernaJsonFile": "lerna.json",
+    "managerData": Object {
+      "lernaJsonFile": "lerna.json",
+    },
     "npmLock": undefined,
     "packageFile": "packages/b/package.json",
     "packageJsonName": "@org/b",
@@ -75,10 +81,12 @@ Array [
         "depName": "foo",
       },
     ],
-    "lernaJsonFile": "lerna.json",
     "lernaPackages": Array [
       "packages/*",
     ],
+    "managerData": Object {
+      "lernaJsonFile": "lerna.json",
+    },
     "packageFile": "package.json",
     "packages": Array [
       "packages/*",
@@ -98,7 +106,9 @@ Array [
       },
     ],
     "lernaClient": undefined,
-    "lernaJsonFile": "lerna.json",
+    "managerData": Object {
+      "lernaJsonFile": "lerna.json",
+    },
     "npmLock": undefined,
     "packageFile": "packages/a/package.json",
     "packageJsonName": "@org/a",
@@ -106,7 +116,9 @@ Array [
   },
   Object {
     "lernaClient": undefined,
-    "lernaJsonFile": "lerna.json",
+    "managerData": Object {
+      "lernaJsonFile": "lerna.json",
+    },
     "npmLock": undefined,
     "packageFile": "packages/b/package.json",
     "packageJsonName": "@org/b",
@@ -119,10 +131,12 @@ exports[`manager/npm/extract .extractPackageFile() uses yarn workspaces package
 Array [
   Object {
     "lernaClient": "yarn",
-    "lernaJsonFile": "lerna.json",
     "lernaPackages": Array [
       "oldpackages/*",
     ],
+    "managerData": Object {
+      "lernaJsonFile": "lerna.json",
+    },
     "packageFile": "package.json",
     "yarnWorkspacesPackages": Array [
       "packages/*",
@@ -130,7 +144,9 @@ Array [
   },
   Object {
     "lernaClient": "yarn",
-    "lernaJsonFile": "lerna.json",
+    "managerData": Object {
+      "lernaJsonFile": "lerna.json",
+    },
     "npmLock": undefined,
     "packageFile": "packages/a/package.json",
     "packageJsonName": "@org/a",
@@ -138,7 +154,9 @@ Array [
   },
   Object {
     "lernaClient": "yarn",
-    "lernaJsonFile": "lerna.json",
+    "managerData": Object {
+      "lernaJsonFile": "lerna.json",
+    },
     "npmLock": undefined,
     "packageFile": "packages/b/package.json",
     "packageJsonName": "@org/b",
@@ -156,7 +174,9 @@ Array [
   Object {
     "hasYarnWorkspaces": true,
     "lernaClient": undefined,
-    "lernaJsonFile": undefined,
+    "managerData": Object {
+      "lernaJsonFile": undefined,
+    },
     "npmLock": undefined,
     "packageFile": "packages/a/package.json",
     "packageJsonName": "@org/a",
@@ -164,7 +184,9 @@ Array [
   },
   Object {
     "lernaClient": undefined,
-    "lernaJsonFile": undefined,
+    "managerData": Object {
+      "lernaJsonFile": undefined,
+    },
     "npmLock": undefined,
     "packageFile": "packages/b/package.json",
     "packageJsonName": "@org/b",
diff --git a/lib/manager/npm/extract/index.ts b/lib/manager/npm/extract/index.ts
index f56f63a39a27e2534ff0faff89119eed4e69637c..33dd844c441586fa5cd49b507bdc2954ebfd9c98 100644
--- a/lib/manager/npm/extract/index.ts
+++ b/lib/manager/npm/extract/index.ts
@@ -366,7 +366,9 @@ export async function extractPackageFile(
     ignoreNpmrcFile,
     yarnrc,
     ...lockFiles,
-    lernaJsonFile,
+    managerData: {
+      lernaJsonFile,
+    },
     lernaClient,
     lernaPackages,
     skipInstalls,
diff --git a/lib/manager/npm/extract/monorepo.spec.ts b/lib/manager/npm/extract/monorepo.spec.ts
index 0d473c6ec512b853d4d86eee7b6017ee4662f7cb..3c509980d34115818e8d874ae8f8a7aefa4f361f 100644
--- a/lib/manager/npm/extract/monorepo.spec.ts
+++ b/lib/manager/npm/extract/monorepo.spec.ts
@@ -6,7 +6,9 @@ describe('manager/npm/extract', () => {
       const packageFiles = [
         {
           packageFile: 'package.json',
-          lernaJsonFile: 'lerna.json',
+          managerData: {
+            lernaJsonFile: 'lerna.json',
+          },
           lernaPackages: ['packages/*'],
           packages: ['packages/*'],
           deps: [
@@ -46,7 +48,7 @@ describe('manager/npm/extract', () => {
       ] as any;
       detectMonorepos(packageFiles, false);
       expect(packageFiles).toMatchSnapshot();
-      expect(packageFiles[1].lernaJsonFile).toEqual('lerna.json');
+      expect(packageFiles[1].managerData.lernaJsonFile).toEqual('lerna.json');
       expect(
         packageFiles.some((packageFile) =>
           packageFile.deps?.some((dep) => dep.skipReason)
@@ -57,7 +59,9 @@ describe('manager/npm/extract', () => {
       const packageFiles = [
         {
           packageFile: 'package.json',
-          lernaJsonFile: 'lerna.json',
+          managerData: {
+            lernaJsonFile: 'lerna.json',
+          },
           lernaPackages: ['packages/*'],
           packages: ['packages/*'],
           deps: [
@@ -97,7 +101,7 @@ describe('manager/npm/extract', () => {
       ] as any;
       detectMonorepos(packageFiles, true);
       expect(packageFiles).toMatchSnapshot();
-      expect(packageFiles[1].lernaJsonFile).toEqual('lerna.json');
+      expect(packageFiles[1].managerData.lernaJsonFile).toEqual('lerna.json');
       expect(
         packageFiles.some((packageFile) =>
           packageFile.deps?.some((dep) => dep.skipReason)
@@ -108,7 +112,9 @@ describe('manager/npm/extract', () => {
       const packageFiles = [
         {
           packageFile: 'package.json',
-          lernaJsonFile: 'lerna.json',
+          managerData: {
+            lernaJsonFile: 'lerna.json',
+          },
           lernaPackages: ['oldpackages/*'],
           lernaClient: 'yarn',
           yarnWorkspacesPackages: ['packages/*'],
@@ -124,7 +130,7 @@ describe('manager/npm/extract', () => {
       ];
       detectMonorepos(packageFiles, false);
       expect(packageFiles).toMatchSnapshot();
-      expect(packageFiles[1].lernaJsonFile).toEqual('lerna.json');
+      expect(packageFiles[1].managerData.lernaJsonFile).toEqual('lerna.json');
     });
     it('uses yarn workspaces package settings without lerna', () => {
       const packageFiles = [
diff --git a/lib/manager/npm/extract/monorepo.ts b/lib/manager/npm/extract/monorepo.ts
index 8b7b0a17ef30ad6e7245feec292426ee70bc6e3e..411255eb31117db62b21a3e3a55a7221db6f4854 100644
--- a/lib/manager/npm/extract/monorepo.ts
+++ b/lib/manager/npm/extract/monorepo.ts
@@ -23,11 +23,12 @@ export function detectMonorepos(
       packageFile,
       npmLock,
       yarnLock,
-      lernaJsonFile,
+      managerData = {},
       lernaClient,
       lernaPackages,
       yarnWorkspacesPackages,
     } = p;
+    const { lernaJsonFile } = managerData;
     const basePath = upath.dirname(packageFile);
     const packages = yarnWorkspacesPackages || lernaPackages;
     if (packages?.length) {
@@ -56,7 +57,8 @@ export function detectMonorepos(
         });
       }
       for (const subPackage of internalPackageFiles) {
-        subPackage.lernaJsonFile = lernaJsonFile;
+        subPackage.managerData = subPackage.managerData || {};
+        subPackage.managerData.lernaJsonFile = lernaJsonFile;
         subPackage.lernaClient = lernaClient;
         subPackage.yarnLock = subPackage.yarnLock || yarnLock;
         subPackage.npmLock = subPackage.npmLock || npmLock;
diff --git a/lib/manager/npm/post-update/index.ts b/lib/manager/npm/post-update/index.ts
index 2479542a7e63ad75c03fd7123d914e4753ca1b89..fb03473ae10ec6e545c5332e6973765bef946c2d 100644
--- a/lib/manager/npm/post-update/index.ts
+++ b/lib/manager/npm/post-update/index.ts
@@ -48,8 +48,8 @@ export function determineLockFileDirs(
   for (const upgrade of config.upgrades) {
     if (upgrade.updateType === 'lockFileMaintenance' || upgrade.isRemediation) {
       // Return every directory that contains a lockfile
-      if (upgrade.lernaJsonFile && upgrade.npmLock) {
-        lernaJsonFiles.push(upgrade.lernaJsonFile);
+      if (upgrade.managerData?.lernaJsonFile && upgrade.npmLock) {
+        lernaJsonFiles.push(upgrade.managerData.lernaJsonFile);
       } else {
         yarnLockDirs.push(upgrade.yarnLock);
         npmLockDirs.push(upgrade.npmLock);
@@ -93,15 +93,15 @@ export function determineLockFileDirs(
     logger.trace(`Checking ${String(p.name)} for lock files`);
     const packageFile = getPackageFile(p.name);
     // lerna first
-    if (packageFile.lernaJsonFile && packageFile.npmLock) {
+    if (packageFile.managerData?.lernaJsonFile && packageFile.npmLock) {
       logger.debug(`${packageFile.packageFile} has lerna lock file`);
-      lernaJsonFiles.push(packageFile.lernaJsonFile);
+      lernaJsonFiles.push(packageFile.managerData.lernaJsonFile);
     } else if (
-      packageFile.lernaJsonFile &&
+      packageFile.managerData?.lernaJsonFile &&
       packageFile.yarnLock &&
       !packageFile.hasYarnWorkspaces
     ) {
-      lernaJsonFiles.push(packageFile.lernaJsonFile);
+      lernaJsonFiles.push(packageFile.managerData.lernaJsonFile);
     } else {
       // push full lock file names and convert them later
       yarnLockDirs.push(packageFile.yarnLock);
diff --git a/lib/manager/types.ts b/lib/manager/types.ts
index b370888e9514c92080a99d83a0ec151a29db2e97..0a6deff94ebfb8eb5637b1bf8a055b3ad6d654ae 100644
--- a/lib/manager/types.ts
+++ b/lib/manager/types.ts
@@ -74,7 +74,6 @@ export interface NpmLockFiles {
   shrinkwrapJson?: string;
   pnpmShrinkwrap?: string;
   npmLock?: string;
-  lernaJsonFile?: string;
   lockFiles?: string[];
 }
 
diff --git a/lib/workers/repository/extract/__snapshots__/manager-files.spec.ts.snap b/lib/workers/repository/extract/__snapshots__/manager-files.spec.ts.snap
index 0689e3fb3591a430f3063c7aeb93e4e2b2504917..7b05cb15e52b9f236495581a3a6c26835f863c16 100644
--- a/lib/workers/repository/extract/__snapshots__/manager-files.spec.ts.snap
+++ b/lib/workers/repository/extract/__snapshots__/manager-files.spec.ts.snap
@@ -16,8 +16,10 @@ Array [
     ],
     "ignoreNpmrcFile": undefined,
     "lernaClient": undefined,
-    "lernaJsonFile": undefined,
     "lernaPackages": undefined,
+    "managerData": Object {
+      "lernaJsonFile": undefined,
+    },
     "npmLock": undefined,
     "npmrc": undefined,
     "packageFile": "package.json",