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'); } } }