From d6559f6357e308daac1a593ea6e968f84c7443fd Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@arkins.net> Date: Thu, 6 Aug 2020 07:59:22 +0200 Subject: [PATCH] fix(yarn): allow overwriting of yarnrc file (#6922) --- lib/manager/common.ts | 2 +- lib/manager/npm/extract/index.ts | 5 ++++- lib/manager/npm/post-update/index.ts | 3 ++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/manager/common.ts b/lib/manager/common.ts index 0d219da80c..0e7421db5f 100644 --- a/lib/manager/common.ts +++ b/lib/manager/common.ts @@ -22,7 +22,7 @@ export interface ExtractConfig extends ManagerConfig { gradle?: { timeout?: number }; aliases?: Record<string, string>; ignoreNpmrcFile?: boolean; - + yarnrc?: string; skipInstalls?: boolean; versioning?: string; } diff --git a/lib/manager/npm/extract/index.ts b/lib/manager/npm/extract/index.ts index 2e739b24f2..af87571eb3 100644 --- a/lib/manager/npm/extract/index.ts +++ b/lib/manager/npm/extract/index.ts @@ -118,7 +118,10 @@ export async function extractPackageFile( } } const yarnrcFileName = getSiblingFileName(fileName, '.yarnrc'); - const yarnrc = (await readLocalFile(yarnrcFileName, 'utf8')) || undefined; + let yarnrc; + if (!is.string(config.yarnrc)) { + yarnrc = (await readLocalFile(yarnrcFileName, 'utf8')) || undefined; + } let lernaDir: string; let lernaPackages: string[]; diff --git a/lib/manager/npm/post-update/index.ts b/lib/manager/npm/post-update/index.ts index c89f361a36..b93ac0080d 100644 --- a/lib/manager/npm/post-update/index.ts +++ b/lib/manager/npm/post-update/index.ts @@ -1,4 +1,5 @@ import path from 'path'; +import is from '@sindresorhus/is'; import upath from 'upath'; import { SYSTEM_INSUFFICIENT_DISK_SPACE } from '../../../constants/error-messages'; import { id as npmId } from '../../../datasource/npm'; @@ -129,7 +130,7 @@ export async function writeExistingFiles( logger.debug('Removing ignored .npmrc file before artifact generation'); await remove(npmrcFile); } - if (config.yarnrc) { + if (is.string(config.yarnrc)) { logger.debug(`Writing repo .yarnrc (${config.localDir})`); await outputFile(upath.join(config.localDir, '.yarnrc'), config.yarnrc); } -- GitLab