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

  1. Upgrade the addon to a version whose engines.slidev includes your Slidev version
  2. Pin Slidev to a version the addon supports
  3. 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

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


AI-assisted analysis of slidevjs/slidev@0d798ace58 (2026-08-12). Data as JSON: /api/errors/50af1f2f8d7de44c. Report an issue: GitHub.