slidevjs/slidev · error · Error
[slidev] addon "${name}" requires Slidev version range "${en
Error message
[slidev] addon "${name}" requires Slidev version range "${engines.slidev}" but found "${version}" What it means
Each addon's package.json may declare engines.slidev as a semver range. Slidev checks its own running version against that range with satisfies(..., { includePrerelease: true }); a mismatch throws.
Source
Thrown at packages/slidev/node/integrations/addons.ts:21
import { satisfies } from 'verkit'
import { version } from '../../package.json'
import { createResolver, getRoots } from '../resolver'
export async function resolveAddons(addonsInConfig: string[]) {
const { userRoot, userPkgJson } = await getRoots()
const resolved: string[] = []
const resolveAddonNameAndRoot = createResolver('addon', {})
async function resolveAddon(name: string, parent: string) {
const [, pkgRoot] = await resolveAddonNameAndRoot(name, parent)
if (!pkgRoot)
return
resolved.push(pkgRoot)
const { slidev = {}, engines = {} } = JSON.parse(await fs.readFile(resolve(pkgRoot, 'package.json'), 'utf-8'))
if (engines.slidev && !satisfies(version, engines.slidev, { includePrerelease: true }))
throw new Error(`[slidev] addon "${name}" requires Slidev version range "${engines.slidev}" but found "${version}"`)
if (Array.isArray(slidev.addons))
await Promise.all(slidev.addons.map((addon: string) => resolveAddon(addon, pkgRoot)))
}
if (Array.isArray(addonsInConfig))
await Promise.all(addonsInConfig.map((addon: string) => resolveAddon(addon, userRoot)))
if (Array.isArray(userPkgJson.slidev?.addons))
await Promise.all(userPkgJson.slidev.addons.map((addon: string) => resolveAddon(addon, userRoot)))
return resolved
}
View on GitHub (pinned to 0d798ace58)
Solutions
- Upgrade the addon to a version whose engines.slidev includes your Slidev version
- Pin Slidev to a version the addon supports
- Check the addon's package.json engines.slidev field and align versions
Example fix
// before "slidev/addon-x": "^1.0.0" (engines.slidev ^0.48) slidev@0.50 // after "slidev/addon-x": "^2.0.0" (engines.slidev ^0.50)
Defensive patterns
Strategy: validation
Validate before calling
import { satisfies } from 'verkit'
for (const addon of addonList) {
const pkg = JSON.parse(await fs.readFile(resolve(addonRoot, 'package.json'), 'utf-8'))
if (pkg.engines?.slidev && !satisfies(slidevVersion, pkg.engines.slidev, { includePrerelease: true })) {
throw new Error(`Addon ${addon} needs Slidev ${pkg.engines.slidev}`)
}
} Prevention
- Lock addon versions in lockfiles to ones matching your Slidev range
- Run a preflight satisfies() check before loading addons
- After upgrading Slidev, audit every addon's engines.slidev
When it happens
Trigger: Loading an addon whose engines.slidev does not include the running Slidev version, e.g. addon pinned to ^0.48 while Slidev 0.50 is installed.
Common situations: Upgrading Slidev without upgrading addons, using a pre-release Slidev with an addon pinned to stable only, or an addon that hasn't been republished for the current major.
Related errors
- [slidev] theme "${name}" requires Slidev version range "${en
- Invalid ${type} name "${name}". Only valid npm package names
AI-assisted analysis of slidevjs/slidev@0d798ace58 (2026-08-12).
Data as JSON: /api/errors/50af1f2f8d7de44c.
Report an issue: GitHub.