quasarframework/quasar · warning

quasar.config file > invalid Vite plugin specified (cannot f

Error message

quasar.config file > invalid Vite plugin specified (cannot find it): ${name}

What it means

Quasar CLI's parseVitePlugins resolves each plugin listed in quasar.config > vite.plugins by looking the package up in the app directory. When getPackage cannot find an installable package for the given name, it warns that the Vite plugin is invalid and skips it, so the plugin will not be applied to the build.

Source

Thrown at app-vite/lib/config-tools.js:86

      acc.push(
        // protect against the Vite plugin mutating its own options and triggering endless cfg diff loop
        merge({}, name)
      )
      continue
    }

    if (typeof name !== 'string') {
      warn('quasar.config file > invalid Vite plugin specified: ' + name)
      warn(
        "Correct form: [ 'my-vite-plugin-name', { /* pluginOpts */ } ] or [ pluginFn, { /* pluginOpts */ } ]"
      )
      continue
    }

    const plugin = await getPackage(name, appDir)

    if (!plugin) {
      warn(
        'quasar.config file > invalid Vite plugin specified (cannot find it): ' +
          name
      )
      continue
    }

    const pluginFn =
      plugin.default?.default || // example: vite-plugin-checker
      plugin.default ||
      plugin

    acc.push(
      pluginFn(
        // protect against the Vite plugin mutating its own options and triggering endless cfg diff loop
        merge({}, pluginOpts)
      )
    )
  }

View on GitHub (pinned to 4841521b5f)

Solutions

  1. Install the missing plugin in the app: pnpm add -D <plugin-name> from the app directory.
  2. Check the plugin name spelling and correct package scope in quasar.config > vite.plugins.
  3. Verify the package exports a valid Vite plugin function/array (some packages need a default export or a subpath import).
  4. Reinstall dependencies (rm -rf node_modules && pnpm install) to fix broken workspace links.

Example fix

// before (quasar.config.js)
vite: { plugins: ['viteplugpwa'] }
// after
vite: { plugins: ['vite-plugin-pwa'] } // and: pnpm add -D vite-plugin-pwa
Defensive patterns

Strategy: validation

Validate before calling

// in quasar.config.js, before listing
const plugins = ['vite-plugin-pwa']
for (const p of plugins) {
  try { require.resolve(p, { paths: [__dirname] }) }
  catch { throw new Error(`Vite plugin not installed: ${p} — run: pnpm add -D ${p}`) }
}

Prevention

When it happens

Trigger: quasar.config file (or vite.config extension) lists a vite plugin name that is not installed in the project, is misspelled, or resolves to a package without a valid plugin export; getPackage(name, appDir) returns null and the warning is emitted.

Common situations: Typo in the plugin name (e.g. 'vite-plugin-pwa' vs '@vitejs/plugin-legacy'); dependency added to a workspace root but not the app package; plugin removed from package.json during a dependency cleanup; forgetting to run pnpm/npm install after cloning.

Understand the failure class

Background: "not installed", "pip install", "required for": how missing-dependency errors surface across open-source libraries — this error's family across 34 libraries.

Related errors


AI-assisted analysis of quasarframework/quasar@4841521b5f (2026-08-30). Data as JSON: /api/errors/58c18b39e56ef8a5. Report an issue: GitHub.