From 1b043f9865c1012480478fc09cc6e35b03329031 Mon Sep 17 00:00:00 2001 From: jerome han <875212376@qq.com> Date: Tue, 3 Jan 2023 18:11:39 +0800 Subject: [PATCH] fix(optimizer): check .vite/deps directory existence before removing (#11499) Co-authored-by: Bjorn Lu --- packages/vite/src/node/utils.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/vite/src/node/utils.ts b/packages/vite/src/node/utils.ts index fe325f5db4ec7e..13ef1c8c91326e 100644 --- a/packages/vite/src/node/utils.ts +++ b/packages/vite/src/node/utils.ts @@ -606,7 +606,12 @@ export function copyDir(srcDir: string, destDir: string): void { export const removeDir = isWindows ? promisify(gracefulRemoveDir) : function removeDirSync(dir: string) { - fs.rmSync(dir, { recursive: true, force: true }) + // when removing `.vite/deps`, if it doesn't exist, nodejs may also remove + // other directories within `.vite/`, including `.vite/deps_temp` (bug). + // workaround by checking for directory existence before removing for now. + if (fs.existsSync(dir)) { + fs.rmSync(dir, { recursive: true, force: true }) + } } export const renameDir = isWindows ? promisify(gracefulRename) : fs.renameSync