diff --git a/lib/manager/npm/extract/index.spec.ts b/lib/manager/npm/extract/index.spec.ts
index e4d6bac61dc2b01de9db21042f6b1eb3585a4284..beda16f2a1b85c6d2444d54d01f8529ed7192a04 100644
--- a/lib/manager/npm/extract/index.spec.ts
+++ b/lib/manager/npm/extract/index.spec.ts
@@ -127,11 +127,11 @@ describe(getName(__filename), () => {
       );
       expect(res.npmrc).toBeUndefined();
     });
-    it('finds and discards .npmrc', async () => {
+    it('finds and filters .npmrc with variables', async () => {
       fs.readLocalFile = jest.fn((fileName) => {
         if (fileName === '.npmrc') {
           // eslint-disable-next-line
-          return '//registry.npmjs.org/:_authToken=${NPM_AUTH_TOKEN}\n';
+          return 'registry=https://registry.npmjs.org\n//registry.npmjs.org/:_authToken=${NPM_AUTH_TOKEN}\n';
         }
         return null;
       });
@@ -140,7 +140,7 @@ describe(getName(__filename), () => {
         'package.json',
         {}
       );
-      expect(res.npmrc).toEqual('');
+      expect(res.npmrc).toEqual('registry=https://registry.npmjs.org\n');
     });
     it('finds lerna', async () => {
       fs.readLocalFile = jest.fn((fileName) => {
diff --git a/lib/manager/npm/extract/index.ts b/lib/manager/npm/extract/index.ts
index cbc04c1596e62927367cb8f2b41caaea9d55b3f9..7d745f386604d9a6e52614d1c717a16e0f302823 100644
--- a/lib/manager/npm/extract/index.ts
+++ b/lib/manager/npm/extract/index.ts
@@ -106,8 +106,14 @@ export async function extractPackageFile(
         npmrc = npmrc.replace(/(^|\n)package-lock.*?(\n|$)/g, '\n');
       }
       if (npmrc.includes('=${') && !getAdminConfig().exposeAllEnv) {
-        logger.debug('Overriding .npmrc file with variables');
-        npmrc = '';
+        logger.debug(
+          { npmrcFileName },
+          'Stripping .npmrc file of lines with variables'
+        );
+        npmrc = npmrc
+          .split('\n')
+          .filter((line) => !line.includes('=${'))
+          .join('\n');
       }
     }
   }