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