vue/multi-word-component-names Vue Origin: On your device OSI layer 7 · Application Last updated 5 Nov 2026

ESLint: error Component name "Home" should always be multi-word vue/multi-word-component-names

ESLint's Vue rules require component names with at least two words to avoid clashing with HTML elements.

Exact message you may see error Component name "Home" should always be multi-word vue/multi-word-component-namesComponent name "Index" should always be multi-worderror Component name should always be multi-word vue/multi-word-component-names
Seen on: Vue

Meaning

Rename (HomeView, TheHeader), or disable the rule for specific files (route views like index.vue) in .eslintrc: "vue/multi-word-component-names": ["error", { ignores: ["index"] }]. Vue CLI/Nuxt templates enable it by default.

Common causes

  • Single-word component filename (Home.vue, Button.vue)
  • Pages/index files in Nuxt
  • Linting in CI failing builds
  • Rule from plugin:vue/vue3-essential
  • Third-party components names

⚡ Quick fix

  1. Rename to multi-word names (AppButton)
  2. Add ignores for page files
  3. Disable the rule if your convention differs

Detailed fix by platform

JSON

  1. "rules": { "vue/multi-word-component-names": ["error", { "ignores": ["index", "default", "error"] }] }

How to diagnose

  1. Name — Multi-word?
  2. Files — Pages/index?
  3. Rule — Needed?

🔧 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]: 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…Duplicate attribute (Vue template) — Vue: [plugin:vite:vue] Duplicate attribute. / [vue/no-duplicate-attributes] Duplicate attribute 'class' (Vue)Duplicate attribute (…ESLint Parsing error in .vue files — ESLint: Parsing error: Unexpected token < / Parsing error: '>' expected (vue-eslint-parser not configured) (Vue)ESLint Parsing error …Failed to compile: ESLint errors during next build — Next.js: Failed to compile. ./src/app/page.tsx 12:7 Error: 'x' is assigned a value but never used. @typescript-eslint/no-unused-vars (Next.js)Failed to compile: ES…Failed to resolve component — Vue: [Vue warn]: Failed to resolve component: x (Vue)Failed to resolve com…react-hooks/exhaustive-deps — React Hook useEffect has a missing dependency (react-hooks/exhaustive-deps) (React)react-hooks/exhaustiv…Vite: Failed to parse source / Unknown file extension ".vue" — Vite/Vue: [plugin:vite:import-analysis] Failed to parse source for import analysis — you may need to install appropriate plugins to handle the .vue file format (Vue)Vite: Failed to parse…vue-loader was used without the corresponding plugin — Webpack: Error: [vue-loader] vue-loader was used without the corresponding plugin. Make sure to include VueLoaderPlugin in your webpack config. (Vue)vue-loader was used w…vue/multi…

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.