vue-loader was used without the corresponding plugin Vue Origin: On your device OSI layer 7 · Application Last updated 5 Nov 2026

Webpack: Error: [vue-loader] vue-loader was used without the corresponding plugin. Make sure to include VueLoaderPlugin in your webpack config.

Webpack config uses vue-loader but doesn't add its plugin.

Exact message you may see Error: [vue-loader] vue-loader was used without the corresponding plugin. Make sure to include VueLoaderPlugin in your webpack config.vue-loader was used without the corresponding plugin[vue-loader] vue-template-compiler must be installed as a peer dependency, or a compatible compiler implementation must be passed via options.Vue packages version mismatch: vue@ vue-template-compiler@
Seen on: Vue Node.js

Meaning

Add const { VueLoaderPlugin } = require("vue-loader") and plugins: [new VueLoaderPlugin()]. Check vue-loader and vue versions match (vue-loader 15 for Vue 2, 17 for Vue 3). Vue CLI projects normally have this configured: avoid overriding rules incorrectly.

Common causes

  • VueLoaderPlugin missing from webpack config
  • vue-loader/vue version mismatch
  • Multiple vue-loader copies
  • Custom config replacing CLI rules
  • Mixed webpack versions

⚡ Quick fix

  1. plugins: [new VueLoaderPlugin()]
  2. vue-loader@17 with Vue 3, @15 with Vue 2
  3. npm ls vue-loader to dedupe

Detailed fix by platform

Linux

  1. npm ls vue vue-loader vue-template-compiler

How to diagnose

  1. Plugin — Added?
  2. Versions — Aligned?
  3. Copies — Duplicates?

🔧 Still not fixed?

Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:

Where this error sits

Origin: On your device. Errors that are often confused with or caused by this one (click to open):

[Vue warn]: <TransitionGroup> children must be keyed — Vue: [Vue warn]: <TransitionGroup> children must be keyed: <li> (Vue)[Vue warn]: <Transiti…[Vue warn]: Component is missing template or render function — Vue: [Vue warn]: Component is missing template or render function. (Vue)[Vue warn]: Component…[Vue warn]: Duplicate keys found during update — Vue: [Vue warn]: Duplicate keys found during update: "5", possible duplicate or missing keys (Vue)[Vue warn]: Duplicate…[Vue warn]: Failed to locate Teleport target with selector — Vue: [Vue warn]: Failed to locate Teleport target with selector "#modal". Note the target element must exist before the component is mounted (Vue)[Vue warn]: Failed to…[Vue warn]: Hydration node/text/children mismatch — Vue: [Vue warn]: Hydration text content mismatch / Hydration node mismatch: server rendered element contains more child nodes than client vdom (Vue)[Vue warn]: Hydration…[Vue warn]: onMounted is called when there is no active component instance — Vue: [Vue warn]: onMounted is called when there is no active component instance to be associated with (Vue)[Vue warn]: onMounted…[Vue warn]: The computed property "x" is already defined in data/props — Vue: [Vue warn]: The computed property "name" is already defined in data. (Vue)[Vue warn]: The compu…[Vue warn]: Unhandled error during execution of setup/mounted hook — Vue: [Vue warn]: Unhandled error during execution of mounted hook / TypeError: Cannot read properties of undefined (reading 'x') (Vue)[Vue warn]: Unhandled…vue-loade…

Explore the map of this error Full error map →

🧠 Still stuck? Analyze your error

Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.

💬 What worked for others

No tips yet — did something else fix this for you?

Share what worked for you

Tips are checked by an editor before they appear. Links are removed.