{"record":{"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":"error","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/1fa9837ec26533512fdcad8baebf249771bd340a/packages/vitest/src/runtime/moduleRunner/moduleRunner.ts#L1-L37","documentation":"Vitest's `createNodeImportMeta` relies on Vite's `createDefaultImportMeta` export from `vite/module-runner`. If the installed Vite version does not export that function (it was added in a later Vite), this error fires immediately. It signals a peer-dependency version mismatch between Vitest and Vite.","triggerScenarios":"Vitest resolves `viteModuleRunner.createDefaultImportMeta` as undefined at moduleRunner.ts:18 because the installed Vite is older than what Vitest expects. This is checked once when `createNodeImportMeta` is first called during module runner construction.","commonSituations":"Pinning Vite to an old version while upgrading Vitest; a monorepo where a different workspace's Vite version wins in resolution; `overrides`/`resolutions` forcing a stale Vite; using a Vitest canary that depends on an unreleased Vite API.","solutions":["Upgrade Vite to the version Vitest declares in its `peerDependencies` (check `packages/vitest/package.json`).","Run `pnpm why vite` / `npm ls vite` to find and deduplicate a stray older Vite.","If overriding Vite intentionally, downgrade Vitest to a version compatible with the installed Vite.","Ensure `node_modules/vite` and `node_modules/vitest/node_modules/vite` resolve to the same version."],"exampleFix":"// before - package.json\n\"devDependencies\": { \"vite\": \"^5.0.0\", \"vitest\": \"^3.0.0\" }\n\n// after\n\"devDependencies\": { \"vite\": \"^6.0.0\", \"vitest\": \"^3.0.0\" }","handlingStrategy":"validation","validationCode":"import * as v from 'vite/module-runner'; if (typeof v.createDefaultImportMeta !== 'function') throw new Error('upgrade Vite to a version exporting createDefaultImportMeta')","typeGuard":"function supportsCreateDefaultImportMeta(m: typeof import('vite/module-runner')): boolean { return typeof m.createDefaultImportMeta === 'function' }","tryCatchPattern":"null","preventionTips":["Keep Vite aligned with the version in Vitest's `peerDependencies`.","Run `npm ls vite`/`pnpm why vite` after upgrades to detect duplicates.","Pin `engines` and peer ranges in CI to catch mismatches at install."],"tags":["vite","peer-dependency","version-compat","module-runner"],"backgroundTag":null,"analyzedSha":"1fa9837ec26533512fdcad8baebf249771bd340a","analyzedAt":"2026-08-11T16:11:39.638Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}