vuejs/vue-cli · error · Error
Cannot resolve "@vue/vue${vueVersion}-jest" module. Please m
Error message
Cannot resolve "@vue/vue${vueVersion}-jest" module. Please make sure you have installed "@vue/vue${vueVersion}-jest" as a dev dependency. What it means
The default jest preset detects the installed Vue major version (2 or 3) and resolves the matching transformer `@vue/vue2-jest` / `@vue/vue3-jest` to compile .vue files for Jest. It wraps require.resolve in try/catch and, on failure, throws a clear message naming the exact package and Vue version it expected as a devDependency.
Source
Thrown at packages/@vue/cli-plugin-unit-jest/presets/default/jest-preset.js:15
// eslint-disable-next-line node/no-extraneous-require
const semver = require('semver')
let vueVersion = 2
try {
// eslint-disable-next-line node/no-extraneous-require
const Vue = require('vue/package.json')
vueVersion = semver.major(Vue.version)
} catch (e) {}
let vueJest = null
try {
vueJest = require.resolve(`@vue/vue${vueVersion}-jest`)
} catch (e) {
throw new Error(`Cannot resolve "@vue/vue${vueVersion}-jest" module. Please make sure you have installed "@vue/vue${vueVersion}-jest" as a dev dependency.`)
}
module.exports = {
testEnvironment: 'jsdom',
moduleFileExtensions: [
'js',
'jsx',
'json',
// tell Jest to handle *.vue files
'vue'
],
transform: {
// process *.vue files with vue-jest
'^.+\\.vue$': vueJest,
'.+\\.(css|styl|less|sass|scss|jpg|jpeg|png|svg|gif|eot|otf|webp|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga|avif)$':
require.resolve('jest-transform-stub'),
'^.+\\.jsx?$': require.resolve('babel-jest')
},View on GitHub (pinned to 7eb93c169c)
Solutions
- Install the matching transformer: `npm i -D @vue/vue2-jest` (Vue 2) or `npm i -D @vue/vue3-jest` (Vue 3).
- Confirm the installed `vue` major matches the transformer you installed (`require('vue/package.json').version`).
- If resolvable but still failing, reinstall node_modules / clear Jest cache to fix hoisting.
Defensive patterns
Strategy: validation
Validate before calling
const semver = require('semver')
let vueVersion = 2
try { vueVersion = semver.major(require('vue/package.json').version) } catch {}
const name = `@vue/vue${vueVersion}-jest`
const pkg = require('./package.json')
const listed = (pkg.devDependencies || {})[name] || (pkg.dependencies || {})[name]
if (!listed) console.warn(`Missing devDependency: run npm i -D ${name}`) Try / catch
// before resolving the preset, probe resolvability
try { require.resolve(`@vue/vue${vueVersion}-jest`) } catch { /* install it, then retry jest */ } Prevention
- Add the matching @vue/vueN-jest to devDependencies whenever you add @vue/cli-plugin-unit-jest.
- Re-check after a Vue 2 -> 3 migration.
When it happens
Trigger: Loading the default jest preset in a project where the matching `@vue/vueN-jest` package is not installed or not resolvable from the project root.
Common situations: Fresh unit-test setup; upgrading a Vue 2 project to Vue 3 without adding `@vue/vue3-jest`; the transformer package missing from devDependencies after dependency cleanup; hoisting issues in monorepos.
Related errors
- Cannot resolve "ts-jest" module. Typescript preset requires
- The package manager has hoisted a wrong version of postcss,
- Require @vue/cli-service "${range}", but was loaded with "${
- Can't find ${packageName} in package.json
- Can't find ${packageName} in node_modules. Please install th
AI-assisted analysis of vuejs/vue-cli@7eb93c169c (2026-08-13).
Data as JSON: /api/errors/7061a9962ab4b11f.
Report an issue: GitHub.