From 69b264cf01b9535c18c47cfd183a0581f7c6fd68 Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@arkins.net> Date: Sun, 13 May 2018 23:06:27 +0200 Subject: [PATCH] =?UTF-8?q?fix(npm):=20don=E2=80=99t=20read=20npmrc=20file?= =?UTF-8?q?s=20if=20ignoreNpmrcFiles=3Dtrue?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/manager/npm/extract/index.js | 15 +++++++------ lib/manager/npm/post-update/index.js | 6 +----- .../repository/extract/manager-files.js | 7 ++++++- lib/workers/repository/init/config.js | 2 +- test/manager/npm/extract/index.spec.js | 21 +++++++++++++------ 5 files changed, 32 insertions(+), 19 deletions(-) diff --git a/lib/manager/npm/extract/index.js b/lib/manager/npm/extract/index.js index bf147185dd..8ab423c9fc 100644 --- a/lib/manager/npm/extract/index.js +++ b/lib/manager/npm/extract/index.js @@ -9,7 +9,7 @@ module.exports = { postExtract, }; -async function extractDependencies(content, packageFile) { +async function extractDependencies(content, packageFile, config) { logger.debug(`npm.extractDependencies(${packageFile})`); logger.trace({ content }); const deps = []; @@ -46,11 +46,14 @@ async function extractDependencies(content, packageFile) { delete lockFiles.packageLock; delete lockFiles.shrinkwrapJson; - let npmrc = await platform.getFile( - upath.join(path.dirname(packageFile), '.npmrc') - ); - if (!npmrc) { - npmrc = undefined; + let npmrc; + if (!config.ignoreNpmrcFile) { + npmrc = await platform.getFile( + upath.join(path.dirname(packageFile), '.npmrc') + ); + if (!npmrc) { + npmrc = undefined; + } } let lernaDir; diff --git a/lib/manager/npm/post-update/index.js b/lib/manager/npm/post-update/index.js index 1594cd5855..f9ae03ad91 100644 --- a/lib/manager/npm/post-update/index.js +++ b/lib/manager/npm/post-update/index.js @@ -169,11 +169,7 @@ async function writeExistingFiles(config, packageFiles) { ); } } - let { npmrc } = config; - if (packageFile.npmrc && !config.ignoreNpmrc) { - logger.debug('Using package.json .npmrc'); - npmrc = npmrc || packageFile.npmrc; - } + const npmrc = packageFile.npmrc || config.npmrc; if (npmrc) { await fs.outputFile(upath.join(basedir, '.npmrc'), npmrc); } diff --git a/lib/workers/repository/extract/manager-files.js b/lib/workers/repository/extract/manager-files.js index 4f118298ef..f54d3ed3df 100644 --- a/lib/workers/repository/extract/manager-files.js +++ b/lib/workers/repository/extract/manager-files.js @@ -41,7 +41,12 @@ async function getManagerPackageFiles(config, managerConfig) { const packageFiles = []; for (const packageFile of matchedFiles) { const content = await platform.getFile(packageFile); - const res = await extractDependencies(manager, content, packageFile); + const res = await extractDependencies( + manager, + content, + packageFile, + config + ); if (res) { packageFiles.push({ packageFile, diff --git a/lib/workers/repository/init/config.js b/lib/workers/repository/init/config.js index 432a392992..a2d1d28969 100644 --- a/lib/workers/repository/init/config.js +++ b/lib/workers/repository/init/config.js @@ -22,7 +22,7 @@ async function mergeRenovateConfig(config) { const migratedConfig = await migrateAndValidate(config, renovateJson); const resolvedConfig = await presets.resolveConfigPresets(migratedConfig); if (resolvedConfig.npmrc) { - resolvedConfig.ignoreNpmrc = true; + resolvedConfig.ignoreNpmrcFile = true; } returnConfig = mergeChildConfig(returnConfig, resolvedConfig); returnConfig.renovateJsonPresent = true; diff --git a/test/manager/npm/extract/index.spec.js b/test/manager/npm/extract/index.spec.js index d10e126b65..64d62bbf6b 100644 --- a/test/manager/npm/extract/index.spec.js +++ b/test/manager/npm/extract/index.spec.js @@ -19,25 +19,32 @@ describe('manager/npm/extract', () => { it('returns null if cannot parse', async () => { const res = await npmExtract.extractDependencies( 'not json', - 'package.json' + 'package.json', + {} ); expect(res).toBe(null); }); it('returns null if no deps', async () => { - const res = await npmExtract.extractDependencies('{}', 'package.json'); + const res = await npmExtract.extractDependencies( + '{}', + 'package.json', + {} + ); expect(res).toBe(null); }); it('handles invalid', async () => { const res = await npmExtract.extractDependencies( '{"dependencies": true, "devDependencies": []}', - 'package.json' + 'package.json', + {} ); expect(res).toBe(null); }); it('returns an array of dependencies', async () => { const res = await npmExtract.extractDependencies( input01Content, - 'package.json' + 'package.json', + {} ); expect(res).toMatchSnapshot(); }); @@ -50,7 +57,8 @@ describe('manager/npm/extract', () => { }); const res = await npmExtract.extractDependencies( input01Content, - 'package.json' + 'package.json', + {} ); expect(res).toMatchSnapshot(); }); @@ -63,7 +71,8 @@ describe('manager/npm/extract', () => { }); const res = await npmExtract.extractDependencies( input01Content, - 'package.json' + 'package.json', + {} ); expect(res).toMatchSnapshot(); }); -- GitLab