diff --git a/lib/manager/npm/post-update/__snapshots__/pnpm.spec.ts.snap b/lib/manager/npm/post-update/__snapshots__/pnpm.spec.ts.snap
index 06316efe2eb4ac68f6c7c1a0f8ed31f019e0334f..e0f6b6898dc5048ca56da8bc0013507eff34b596 100644
--- a/lib/manager/npm/post-update/__snapshots__/pnpm.spec.ts.snap
+++ b/lib/manager/npm/post-update/__snapshots__/pnpm.spec.ts.snap
@@ -3,7 +3,7 @@
 exports[`generateLockFile catches errors 1`] = `
 Array [
   Object {
-    "cmd": "pnpm install --lockfile-only --ignore-scripts --ignore-pnpmfile",
+    "cmd": "pnpm install --recursive --lockfile-only --ignore-scripts --ignore-pnpmfile",
     "options": Object {
       "cwd": "some-dir",
       "encoding": "utf-8",
@@ -25,7 +25,7 @@ Array [
 exports[`generateLockFile finds pnpm globally 1`] = `
 Array [
   Object {
-    "cmd": "pnpm install --lockfile-only --ignore-scripts --ignore-pnpmfile",
+    "cmd": "pnpm install --recursive --lockfile-only --ignore-scripts --ignore-pnpmfile",
     "options": Object {
       "cwd": "some-dir",
       "encoding": "utf-8",
@@ -47,7 +47,7 @@ Array [
 exports[`generateLockFile generates lock files 1`] = `
 Array [
   Object {
-    "cmd": "pnpm install --lockfile-only --ignore-scripts --ignore-pnpmfile",
+    "cmd": "pnpm install --recursive --lockfile-only --ignore-scripts --ignore-pnpmfile",
     "options": Object {
       "cwd": "some-dir",
       "encoding": "utf-8",
@@ -69,7 +69,7 @@ Array [
 exports[`generateLockFile performs lock file maintenance 1`] = `
 Array [
   Object {
-    "cmd": "pnpm install --lockfile-only --ignore-scripts --ignore-pnpmfile",
+    "cmd": "pnpm install --recursive --lockfile-only --ignore-scripts --ignore-pnpmfile",
     "options": Object {
       "cwd": "some-dir",
       "encoding": "utf-8",
diff --git a/lib/manager/npm/post-update/pnpm.ts b/lib/manager/npm/post-update/pnpm.ts
index 69825df15d783c3083c50f3a1cc8261e3a6bbb73..d1ee9d2f0a2b2a5153a5892f9a93354a244f14e0 100644
--- a/lib/manager/npm/post-update/pnpm.ts
+++ b/lib/manager/npm/post-update/pnpm.ts
@@ -54,7 +54,7 @@ export async function generateLockFile(
       execOptions.docker.volumes = [[homeNpmrc, '/home/ubuntu/.npmrc']];
     }
     cmd = 'pnpm';
-    let args = 'install --lockfile-only';
+    let args = 'install --recursive --lockfile-only';
     if (global.trustLevel !== 'high' || config.ignoreScripts) {
       args += ' --ignore-scripts';
       args += ' --ignore-pnpmfile';