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;