{"id":"1a9310634332a31a","repo":"vitest-dev/vitest","slug":"createnodeimportmeta-is-not-supported-in-this-vers","errorCode":null,"errorMessage":"createNodeImportMeta is not supported in this version of Vite.","messagePattern":"createNodeImportMeta is not supported in this version of Vite\\.","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"critical","filePath":"packages/vitest/src/runtime/moduleRunner/moduleRunner.ts","lineNumber":19,"sourceCode":"import type { MockedModule } from '@vitest/mocker'\nimport type vm from 'node:vm'\nimport type { EvaluatedModuleNode, EvaluatedModules, SSRImportMetadata } from 'vite/module-runner'\nimport type { WorkerGlobalState } from '../../types/worker'\nimport type { ExternalModulesExecutor } from '../external-executor'\nimport type { ModuleExecutionInfo } from './moduleDebug'\nimport type { VitestModuleEvaluator } from './moduleEvaluator'\nimport type { VitestTransportOptions } from './moduleTransport'\nimport type { TestModuleRunner } from './testModuleRunner'\nimport * as viteModuleRunner from 'vite/module-runner'\nimport { Traces } from '../../utils/traces'\nimport { VitestMocker } from './moduleMocker'\nimport { VitestTransport } from './moduleTransport'\nimport { injectQuery } from './utils'\n\nexport type CreateImportMeta = (modulePath: string) => viteModuleRunner.ModuleRunnerImportMeta | Promise<viteModuleRunner.ModuleRunnerImportMeta>\nexport const createNodeImportMeta: CreateImportMeta = (modulePath: string) => {\n  if (!viteModuleRunner.createDefaultImportMeta) {\n    throw new Error(`createNodeImportMeta is not supported in this version of Vite.`)\n  }\n\n  const defaultMeta = viteModuleRunner.createDefaultImportMeta(modulePath)\n  const href = defaultMeta.url\n\n  const importMetaResolver = createImportMetaResolver() ?? defaultMeta.resolve\n\n  return {\n    ...defaultMeta,\n    main: false,\n    resolve(id: string, parent?: string) {\n      return importMetaResolver(id, parent ?? href)\n    },\n  }\n}\n\nfunction createImportMetaResolver() {\n  if (!import.meta.resolve) {","sourceCodeStart":1,"sourceCodeEnd":37,"githubUrl":"https://github.com/vitest-dev/vitest/blob/d568f8ce3739b532d5bf2c1ee1e45e8a8a473d09/packages/vitest/src/runtime/moduleRunner/moduleRunner.ts#L1-L37","documentation":"`createNodeImportMeta` (`moduleRunner.ts:19`) depends on Vite's `createDefaultImportMeta` export to build `import.meta` for evaluated modules. If the installed Vite version doesn't export it (older Vite), this `Error` is thrown as a hard version-compatibility guard. Vitest's module runner needs a recent enough Vite.","triggerScenarios":"Vitest wired against an older Vite that predates `createDefaultImportMeta`; a workspace where `createImportMeta` was set to `createNodeImportMeta` but Vite is too old.","commonSituations":"Upgrading Vitest without upgrading Vite (or vice versa); pnpm/npm deduplication pulling a stale Vite into the tree; a monorepo with mismatched versions.","solutions":["Align Vite and Vitest versions per Vitest's peerDependencies (check `pnpm why vite` for duplicates).","Reinstall `node_modules` to dedupe: `rm -rf node_modules && pnpm install`.","Pin a compatible Vite in the workspace root."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"// Verify Vite exposes createDefaultImportMeta at startup.\nimport * as viteRunner from 'vite/module-runner'\nif (typeof (viteRunner as any).createDefaultImportMeta !== 'function') {\n  throw new Error('Incompatible Vite version: createDefaultImportMeta missing. Align Vite/Vitest versions.')\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Keep Vite and Vitest versions aligned per Vitest's peerDependencies.","After upgrading, reinstall node_modules to dedupe Vite.","Run `pnpm why vite` in a monorepo to detect duplicate/older Vite versions."],"tags":["version-compatibility","vite","module-runner","configuration"],"analyzedSha":"d568f8ce3739b532d5bf2c1ee1e45e8a8a473d09","analyzedAt":"2026-08-03T20:23:56.861Z","schemaVersion":2}