From f0345643f03c798bcb1a9d3703a904ce0b325b58 Mon Sep 17 00:00:00 2001 From: Haoqun Jiang Date: Thu, 23 Aug 2018 21:31:05 +0800 Subject: [PATCH] fix: use sync fs methods in writeFileTree closes #2275 Iterating over async functions would put too many write calls in I/O queue in the same time, leading to weird bugs. --- packages/@vue/cli/lib/util/writeFileTree.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/@vue/cli/lib/util/writeFileTree.js b/packages/@vue/cli/lib/util/writeFileTree.js index e769399e29..5eff5acde0 100644 --- a/packages/@vue/cli/lib/util/writeFileTree.js +++ b/packages/@vue/cli/lib/util/writeFileTree.js @@ -19,9 +19,9 @@ module.exports = async function writeFileTree (dir, files, previousFiles) { if (previousFiles) { await deleteRemovedFiles(dir, files, previousFiles) } - return Promise.all(Object.keys(files).map(async (name) => { + Object.keys(files).forEach((name) => { const filePath = path.join(dir, name) - await fs.ensureDir(path.dirname(filePath)) - await fs.writeFile(filePath, files[name]) - })) + fs.ensureDirSync(path.dirname(filePath)) + fs.writeFileSync(filePath, files[name]) + }) }