diff --git a/lib/workers/branch/lock-files.js b/lib/workers/branch/lock-files.js index f2f9e67757fbd3e4fbeaed06ae69ba3e6f4dabfc..441628a3389864c6753c423bfba9886f12c199e1 100644 --- a/lib/workers/branch/lock-files.js +++ b/lib/workers/branch/lock-files.js @@ -232,7 +232,12 @@ async function writeExistingFiles(config) { } if (packageFile.packageLock && config.type !== 'lockFileMaintenance') { logger.debug(`Writing package-lock.json to ${basedir}`); - const packageLock = await platform.getFile(packageFile.packageLock); + const existingPackageLock = + (await platform.branchExists(config.branchName)) && + (await platform.getFile(packageFile.packageLock, config.branchName)); + const packageLock = + existingPackageLock || + (await platform.getFile(packageFile.packageLock)); await fs.outputFile( upath.join(basedir, 'package-lock.json'), packageLock @@ -242,7 +247,11 @@ async function writeExistingFiles(config) { } if (packageFile.yarnLock && config.type !== 'lockFileMaintenance') { logger.debug(`Writing yarn.lock to ${basedir}`); - const yarnLock = await platform.getFile(packageFile.yarnLock); + const existingYarnLock = + (await platform.branchExists(config.branchName)) && + (await platform.getFile(packageFile.yarnLock, config.branchName)); + const yarnLock = + existingYarnLock || (await platform.getFile(packageFile.yarnLock)); await fs.outputFile(upath.join(basedir, 'yarn.lock'), yarnLock); } else { await fs.remove(upath.join(basedir, 'yarn.lock'));