From 6714a03b9b7c393c1feaa8ce5307733117d401fe Mon Sep 17 00:00:00 2001
From: Rhys Arkins <rhys@arkins.net>
Date: Tue, 2 Oct 2018 12:14:42 +0200
Subject: [PATCH] fix(yarn): write yarn.lock only once

---
 lib/manager/npm/post-update/index.js | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/lib/manager/npm/post-update/index.js b/lib/manager/npm/post-update/index.js
index 99efe63987..89c2d7e72c 100644
--- a/lib/manager/npm/post-update/index.js
+++ b/lib/manager/npm/post-update/index.js
@@ -112,6 +112,7 @@ async function writeExistingFiles(config, packageFiles) {
     { packageFiles: npmFiles.map(n => n.packageFile) },
     'Writing package.json files'
   );
+  const writtenLockFiles = [];
   for (const packageFile of npmFiles) {
     const basedir = upath.join(
       config.localDir,
@@ -225,10 +226,11 @@ async function writeExistingFiles(config, packageFiles) {
       if (config.reuseLockFiles === false) {
         logger.debug(`Ensuring ${yarnLock} is removed`);
         await fs.remove(yarnLockPath);
-      } else {
+      } else if (!writtenLockFiles[yarnLock]) {
         logger.debug(`Writing ${yarnLock}`);
         const existingYarnLock = await platform.getFile(yarnLock);
         await fs.outputFile(yarnLockPath, existingYarnLock);
+        writtenLockFiles[yarnLock] = true;
       }
     }
     // TODO: Update the below with this once https://github.com/pnpm/pnpm/issues/992 is fixed
-- 
GitLab