diff --git a/lib/manager/npm/post-update/npm.ts b/lib/manager/npm/post-update/npm.ts
index 456567140903e398a1a17e9bb4fad35b2183b8fa..9dd5414dcdd478ebb3f19efd6fb5541f2ba0359f 100644
--- a/lib/manager/npm/post-update/npm.ts
+++ b/lib/manager/npm/post-update/npm.ts
@@ -129,8 +129,8 @@ export async function generateLockFile(
       // massage lock file for npm 7+
       try {
         const lockFileParsed = JSON.parse(await readFile(lockFileName, 'utf8'));
-        const packageNames = Object.keys(lockFileParsed.packages);
-        if (is.nonEmptyArray(packageNames)) {
+        if (is.plainObject(lockFileParsed.packages)) {
+          const packageNames = Object.keys(lockFileParsed.packages);
           let lockFileMassaged = false;
           for (const { depName } of upgrades) {
             for (const packageName of packageNames) {