diff --git a/packages/vite-node/src/server.ts b/packages/vite-node/src/server.ts index e1eb6f5a4563..cad850034238 100644 --- a/packages/vite-node/src/server.ts +++ b/packages/vite-node/src/server.ts @@ -1,6 +1,6 @@ import { performance } from 'node:perf_hooks' import { existsSync } from 'node:fs' -import { join, relative, resolve } from 'pathe' +import { join, normalize, relative, resolve } from 'pathe' import type { TransformResult, ViteDevServer } from 'vite' import createDebug from 'debug' import type { EncodedSourceMap } from '@jridgewell/trace-mapping' @@ -72,6 +72,18 @@ export class ViteNodeServer { const customModuleDirectories = envValue?.split(',') if (customModuleDirectories) options.deps.moduleDirectories.push(...customModuleDirectories) + + options.deps.moduleDirectories = options.deps.moduleDirectories.map((dir) => { + if (!dir.startsWith('/')) + dir = `/${dir}` + if (!dir.endsWith('/')) + dir += '/' + return normalize(dir) + }) + + // always add node_modules as a module directory + if (!options.deps.moduleDirectories.includes('/node_modules/')) + options.deps.moduleDirectories.push('/node_modules/') } shouldExternalize(id: string) { diff --git a/packages/vitest/src/node/config.ts b/packages/vitest/src/node/config.ts index 947bdfc7d895..087076ac6375 100644 --- a/packages/vitest/src/node/config.ts +++ b/packages/vitest/src/node/config.ts @@ -140,7 +140,7 @@ export function resolveConfig( resolved.deps.inline.push(...extraInlineDeps) } } - resolved.deps.moduleDirectories ??= ['/node_modules/'] + resolved.deps.moduleDirectories ??= [] resolved.deps.moduleDirectories = resolved.deps.moduleDirectories.map((dir) => { if (!dir.startsWith('/')) dir = `/${dir}` @@ -148,6 +148,8 @@ export function resolveConfig( dir += '/' return normalize(dir) }) + if (!resolved.deps.moduleDirectories.includes('/node_modules/')) + resolved.deps.moduleDirectories.push('/node_modules/') if (resolved.runner) { resolved.runner = resolveModule(resolved.runner, { paths: [resolved.root] })