eslint-plugin-vue is an ESLint plugin that enforces code quality and style standards for Vue.js projects.
The plugin addresses the need to lint Vue single-file components, which are not plain JavaScript but a custom file format combining templates, scripts, and styles. The standard ESLint parser cannot handle this syntax, so the plugin uses vue-eslint-parser as a replacement parser. This parser generates an enhanced abstract syntax tree with nodes representing specific parts of template syntax alongside script contents, allowing ESLint rules to inspect and validate both the template and script portions of Vue components.
Teams building Vue applications should adopt this plugin to catch common mistakes and enforce consistency across their codebase. It suits any Vue project, from small applications to large frameworks like Nuxt. The plugin is the official tool maintained by the Vue team, making it the natural choice for Vue-specific linting rather than relying on generic JavaScript linters alone.
The project maintains an active development cadence with regular releases published through GitHub Releases. The maintainers follow a non-standard versioning approach where minor version updates may introduce stricter rules and report additional linting errors, requiring users to pin versions with the tilde operator to avoid unexpected build failures. The project actively welcomes contributions and provides comprehensive developer documentation including guides for writing new rules, with examples and references to the vue-eslint-parser AST documentation to help contributors understand the enhanced syntax tree structure.