diff --git a/lib/manager/npm/extract/index.js b/lib/manager/npm/extract/index.js
index b04fcd5a36dd445035fd9ceb29072d1d9ff1bd38..4c1f5f6db039ee0a0e360bacbd6a0412ed32bfcc 100644
--- a/lib/manager/npm/extract/index.js
+++ b/lib/manager/npm/extract/index.js
@@ -1,3 +1,4 @@
+const fs = require('fs-extra');
 const path = require('path');
 const upath = require('upath');
 const validateNpmPackageName = require('validate-npm-package-name');
@@ -92,10 +93,13 @@ async function extractPackageFile(content, fileName, config) {
   delete lockFiles.shrinkwrapJson;
 
   let npmrc;
-  if (!config.ignoreNpmrcFile) {
-    npmrc = await platform.getFile(
-      upath.join(path.dirname(fileName), '.npmrc')
-    );
+  const npmrcFileName = upath.join(path.dirname(fileName), '.npmrc');
+  const npmrcFileNameLocal = upath.join(config.localDir || '', npmrcFileName);
+  // istanbul ignore if
+  if (config.ignoreNpmrcFile) {
+    await fs.remove(npmrcFileNameLocal);
+  } else {
+    npmrc = await platform.getFile(npmrcFileName);
     if (npmrc && npmrc.includes('package-lock')) {
       logger.info('Stripping package-lock setting from npmrc');
       npmrc = npmrc.replace(/(^|\n)package-lock.*?(\n|$)/g, '\n');
@@ -104,6 +108,7 @@ async function extractPackageFile(content, fileName, config) {
       if (npmrc.includes('=${') && !(global.trustLevel === 'high')) {
         logger.info('Discarding .npmrc file with variables');
         npmrc = undefined;
+        await fs.remove(npmrcFileNameLocal);
       }
     } else {
       npmrc = undefined;