From 2a0f2fbba933c95f8ec008aaa346b49aaf0384a8 Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@arkins.net> Date: Thu, 7 Jun 2018 12:39:49 +0200 Subject: [PATCH] fix(npm): filter out package-lock = false in .npmrc This prevents us from updating npm lock files --- lib/manager/npm/extract/index.js | 4 ++++ test/manager/npm/extract/index.spec.js | 14 ++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/lib/manager/npm/extract/index.js b/lib/manager/npm/extract/index.js index 48148be927..d754d8b23d 100644 --- a/lib/manager/npm/extract/index.js +++ b/lib/manager/npm/extract/index.js @@ -66,6 +66,10 @@ async function extractDependencies(content, packageFile, config) { npmrc = await platform.getFile( upath.join(path.dirname(packageFile), '.npmrc') ); + if (npmrc && npmrc.includes('package-lock')) { + logger.info('Stripping package-lock setting from npmrc'); + npmrc = npmrc.replace(/(^|\\n)package-lock.*?(\n|$)/g, ''); + } if (npmrc) { if ( npmrc.includes('=${') && diff --git a/test/manager/npm/extract/index.spec.js b/test/manager/npm/extract/index.spec.js index 7ecd8b0296..ccd7b24ca2 100644 --- a/test/manager/npm/extract/index.spec.js +++ b/test/manager/npm/extract/index.spec.js @@ -76,6 +76,20 @@ describe('manager/npm/extract', () => { ); expect(res).toMatchSnapshot(); }); + it('finds and filters .npmrc', async () => { + platform.getFile = jest.fn(fileName => { + if (fileName === '.npmrc') { + return 'save-exact = true\npackage-lock = false\n'; + } + return null; + }); + const res = await npmExtract.extractDependencies( + input01Content, + 'package.json', + { global: {} } + ); + expect(res.npmrc).toBeDefined(); + }); it('finds and discards .npmrc', async () => { platform.getFile = jest.fn(fileName => { if (fileName === '.npmrc') { -- GitLab