slidevjs/slidev · error · Error
[slidev] theme "${name}" requires Slidev version range "${en
Error message
[slidev] theme "${name}" requires Slidev version range "${engines.slidev}" but found "${version}" What it means
Thrown by getThemeMeta when a Slidev theme's package.json declares an engines.slidev semver range that the currently running Slidev version does not satisfy. The check uses satisfies(version, engines.slidev, { includePrerelease: true }) and fires only when engines.slidev is present and non-empty. It protects against loading a theme built against an incompatible Slidev API.
Source
Thrown at packages/slidev/node/integrations/themes.ts:28
'none': '',
'default': '@slidev/theme-default',
'seriph': '@slidev/theme-seriph',
'apple-basic': '@slidev/theme-apple-basic',
'shibainu': '@slidev/theme-shibainu',
'bricks': '@slidev/theme-bricks',
}
export const resolveTheme = createResolver('theme', officialThemes)
export async function getThemeMeta(name: string, root: string) {
const path = join(root, 'package.json')
if (!existsSync(path))
return {}
const { slidev = {}, engines = {} } = JSON.parse(await fs.readFile(path, 'utf-8'))
if (engines.slidev && !satisfies(version, engines.slidev, { includePrerelease: true }))
throw new Error(`[slidev] theme "${name}" requires Slidev version range "${engines.slidev}" but found "${version}"`)
return slidev as SlidevThemeMeta
}
View on GitHub (pinned to 0d798ace58)
Solutions
- Upgrade Slidev in the project to a version inside the range printed in engines.slidev (e.g. npm i -D @slidev/cli@latest).
- If you cannot upgrade Slidev, downgrade the theme to a release whose engines.slidev accepts your current version.
- Verify the theme package.json engines.slidev value and your installed version with npm ls @slidev/cli, then align them.
- For a local/private theme, relax or correct the engines.slidev range in its package.json to match the deployed Slidev.
Example fix
// before: theme package.json
{
"name": "@my/slidev-theme",
"engines": { "slidev": ">=0.48.0" }
}
// running Slidev is 0.47.x -> throws
// after: align either side
// option A - upgrade Slidev
npm i -D @slidev/cli@latest
// option B - widen theme range
{
"name": "@my/slidev-theme",
"engines": { "slidev": ">=0.47.0" }
} Defensive patterns
Strategy: validation
Validate before calling
import { satisfies } from 'semver'
import { version as slidevVersion } from '@slidev/cli/package.json'
function themeCompatible(engines: { slidev?: string } | undefined): boolean {
if (!engines?.slidev) return true
return satisfies(slidevVersion, engines.slidev, { includePrerelease: true })
}
// before applying a theme:
const themePkg = require.resolve('<theme>/package.json')
if (!themeCompatible(require(themePkg).engines)) {
throw new Error('Theme incompatible; upgrade Slidev or the theme first.')
} Type guard
function hasEnginesSlidev(pkg: unknown): pkg is { engines: { slidev: string } } {
return !!pkg
&& typeof pkg === 'object'
&& !!(pkg as any).engines
&& typeof (pkg as any).engines.slidev === 'string'
} Try / catch
try {
await getThemeMeta(themeName, themeRoot)
} catch (e) {
if (e instanceof Error && e.message.startsWith('[slidev] theme ')) {
// surface a guided upgrade prompt to the user
throw new Error('Theme version mismatch. Upgrade @slidev/cli or pick another theme.')
}
throw e
} Prevention
- Pin both @slidev/cli and theme versions in lockstep in package.json.
- In CI, assert satisfies(cliVersion, themePkg.engines.slidev) before building.
- After upgrading Slidev, re-resolve all themes and bump any that lag.
- For private themes, set engines.slidev conservatively to the range you test against.
When it happens
Trigger: Calling getThemeMeta(name, root) where the theme's package.json contains an engines.slidev field and the running Slidev version falls outside that range. Typical with a theme authored for Slidev 0.4x loaded under Slidev 0.5x, or a new theme under an old Slidev install.
Common situations: Upgrading Slidev but not the theme (or vice versa); mixing a globally-installed Slidev with a project-local theme that pins a different range; CI using a locked older Slidev while the theme's latest release bumped its engines.slidev requirement.
Related errors
- `loadTheme` is no longer supported.
- [slidev] addon "${name}" requires Slidev version range "${en
- Cannot ${action} the first slide of the entry file: its fron
- Invalid ${type} name "${name}". Only valid npm package names
AI-assisted analysis of slidevjs/slidev@0d798ace58 (2026-08-12).
Data as JSON: /api/errors/b664aad796f253af.
Report an issue: GitHub.