diff --git a/packages/vite-node/src/externalize.ts b/packages/vite-node/src/externalize.ts index 6909bf17a872..4049b64f5dd1 100644 --- a/packages/vite-node/src/externalize.ts +++ b/packages/vite-node/src/externalize.ts @@ -7,9 +7,6 @@ const ESM_EXT_RE = /\.(es|esm|esm-browser|esm-bundler|es6|module)\.js$/ const ESM_FOLDER_RE = /\/esm\/(.*\.js)$/ const defaultInline = [ - /\/vitest\/dist\//, - // yarn's .store folder - /vitest-virtual-\w+\/dist/, /virtual:/, /\.ts$/, ESM_EXT_RE, @@ -17,7 +14,7 @@ const defaultInline = [ ] const depsExternal = [ - /\.cjs.js$/, + /\.cjs\.js$/, /\.mjs$/, ] diff --git a/packages/vitest/src/node/config.ts b/packages/vitest/src/node/config.ts index 5c8ce57dd780..5b7025f88c40 100644 --- a/packages/vitest/src/node/config.ts +++ b/packages/vitest/src/node/config.ts @@ -62,6 +62,16 @@ export function resolveConfig( resolved.coverage = resolveC8Options(resolved.coverage, resolved.root) resolved.deps = resolved.deps || {} + // vitenode will try to import such file with native node, + // but then our mocker will not work properly + resolved.deps.inline ??= [] + resolved.deps.inline.push( + /^(?!.*(?:node_modules)).*\.mjs$/, + /^(?!.*(?:node_modules)).*\.cjs\.js$/, + /\/vitest\/dist\//, + // yarn's .store folder + /vitest-virtual-\w+\/dist/, + ) resolved.environment = resolved.environment || 'node' resolved.threads = resolved.threads ?? true