11import fs from 'node:fs'
2+ import crypto from 'node:crypto'
23import { findUp } from 'find-up'
34import { resolve } from 'pathe'
45import { loadConfigFromFile } from 'vite'
@@ -20,8 +21,11 @@ export class VitestCache {
2021 return this . stats . getStats ( key )
2122 }
2223
23- static resolveCacheDir ( root : string , dir : string | undefined ) {
24- return resolve ( root , slash ( dir || 'node_modules/.vitest' ) )
24+ static resolveCacheDir ( root : string , dir : string | undefined , projectName : string | undefined ) {
25+ const baseDir = slash ( dir || 'node_modules/.vitest' )
26+ return projectName
27+ ? resolve ( root , baseDir , crypto . createHash ( 'md5' ) . update ( projectName , 'utf-8' ) . digest ( 'hex' ) )
28+ : resolve ( root , baseDir )
2529 }
2630
2731 static async clearCache ( options : CliOptions ) {
@@ -38,11 +42,12 @@ export class VitestCache {
3842 : undefined
3943
4044 const cache = config ?. test ?. cache
45+ const projectName = config ?. test ?. name
4146
4247 if ( cache === false )
4348 throw new Error ( 'Cache is disabled' )
4449
45- const cachePath = VitestCache . resolveCacheDir ( root , cache ?. dir )
50+ const cachePath = VitestCache . resolveCacheDir ( root , cache ?. dir , projectName )
4651
4752 let cleared = false
4853
0 commit comments