NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #3443 most downloaded on npm
The ESLint custom parser for `.vue` files.
Last release 4 months ago
02 Jun 2026
Release timing varies
gaps range from 2 weeks to 9 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
10 years old
94 releases · first in 2016
fix: compatibility with @babel/eslint-parser v8 by @JounQin in https://github.com/vuejs/vue-eslint-parser/pull/294
@babel/eslint-parser v8 by @JounQin in https://github.com/vuejs/vue-eslint-parser/pull/294Full Changelog: https://github.com/vuejs/vue-eslint-parser/compare/v10.4.0...v10.4.1
feat: updated scope analyzer to mark variables as used to prevent false positives with no-useless-assignment by @ota-meshi in https://github.com/vuejs
no-useless-assignment by @ota-meshi in https://github.com/vuejs/vue-eslint-parser/pull/288Full Changelog: https://github.com/vuejs/vue-eslint-parser/compare/v10.3.0...v10.4.0
One column per quarter.
Allow ESLint v10 as peer dependency by @FloEdelmann in https://github.com/vuejs/vue-eslint-parser/pull/277
vitest by @9romise in https://github.com/vuejs/vue-eslint-parser/pull/269tsdown by @9romise in https://github.com/vuejs/vue-eslint-parser/pull/266Full Changelog: https://github.com/vuejs/vue-eslint-parser/compare/v10.2.0...v10.3.0
refactor: drop lodash by @9romise in https://github.com/vuejs/vue-eslint-parser/pull/268
Full Changelog: https://github.com/vuejs/vue-eslint-parser/compare/v10.1.4...v10.2.0
Fix comments order by @waynzh in https://github.com/vuejs/vue-eslint-parser/pull/265
Full Changelog: https://github.com/vuejs/vue-eslint-parser/compare/v10.1.3...v10.1.4
Fix text token type in {{...}} with invalid expression by @woongsikchoi in https://github.com/vuejs/vue-eslint-parser/pull/257
{{...}} with invalid expression by @woongsikchoi in https://github.com/vuejs/vue-eslint-parser/pull/257Full Changelog: https://github.com/vuejs/vue-eslint-parser/compare/v10.1.2...v10.1.3
Fix content after }} causes invalid vue/no-parsing-error by @woongsikchoi in https://github.com/vuejs/vue-eslint-parser/pull/256
<textarea> content after }} causes invalid vue/no-parsing-error by @woongsikchoi in https://github.com/vuejs/vue-eslint-parser/pull/256Full Changelog: https://github.com/vuejs/vue-eslint-parser/compare/v10.1.1...v10.1.2
Fix wrong scope for generic attribute by @ota-meshi in https://github.com/vuejs/vue-eslint-parser/pull/254
Full Changelog: https://github.com/vuejs/vue-eslint-parser/compare/v10.1.0...v10.1.1
feat: add TokenStore#{getLoc,getRange}() by @fisker in https://github.com/vuejs/vue-eslint-parser/pull/253
TokenStore#{getLoc,getRange}() by @fisker in https://github.com/vuejs/vue-eslint-parser/pull/253Full Changelog: https://github.com/vuejs/vue-eslint-parser/compare/v10.0.0...v10.1.0
Drop support old eslint and node by @ota-meshi in https://github.com/vuejs/vue-eslint-parser/pull/242
project: undefined when parsing script-fragments in <template>. by @ota-meshi in https://github.com/vuejs/vue-eslint-parser/pull/195Full Changelog: https://github.com/vuejs/vue-eslint-parser/compare/v9.4.3...v10.0.0
Fixed wrong AST for asycn function in v-on by @ota-meshi in https://github.com/vuejs/vue-eslint-parser/pull/227
Full Changelog: https://github.com/vuejs/vue-eslint-parser/compare/v9.4.2...v9.4.3
Fix an error when using default for generic by @ota-meshi in https://github.com/vuejs/vue-eslint-parser/pull/222
Full Changelog: https://github.com/vuejs/vue-eslint-parser/compare/v9.4.1...v9.4.2
fix: shorthand camelize should be used in rawName by @waynzh in https://github.com/vuejs/vue-eslint-parser/pull/218
rawName by @waynzh in https://github.com/vuejs/vue-eslint-parser/pull/218Full Changelog: https://github.com/vuejs/vue-eslint-parser/compare/v9.4.0...v9.4.1
Add support for defineModel by @ota-meshi in https://github.com/vuejs/vue-eslint-parser/pull/213
Full Changelog: https://github.com/vuejs/vue-eslint-parser/compare/v9.3.2...v9.4.0
fix: context provided by defineCustomBlocksVisitor by @ota-meshi in https://github.com/vuejs/vue-eslint-parser/pull/211
Full Changelog: https://github.com/vuejs/vue-eslint-parser/compare/v9.3.1...v9.3.2
Fix wrong scope for generics with multiple script blocks by @ota-meshi in https://github.com/vuejs/vue-eslint-parser/pull/201
Full Changelog: https://github.com/vuejs/vue-eslint-parser/compare/v9.3.0...v9.3.1
Add support for defineOptions and defineSlots by @ota-meshi in https://github.com/vuejs/vue-eslint-parser/pull/193
defineOptions and defineSlots by @ota-meshi in https://github.com/vuejs/vue-eslint-parser/pull/193vueFeatures.customMacros option by @ota-meshi in https://github.com/vuejs/vue-eslint-parser/pull/194<script setup lang=ts generic="..."> by @ota-meshi in https://github.com/vuejs/vue-eslint-parser/pull/182Full Changelog: https://github.com/vuejs/vue-eslint-parser/compare/v9.2.1...v9.3.0
Fix defineCustomBlocksVisitor was incompatible with ESLint v8.40 by @ota-meshi in https://github.com/vuejs/vue-eslint-parser/pull/192
Full Changelog: https://github.com/vuejs/vue-eslint-parser/compare/v9.2.0...v9.2.1
Add exported meta object by @TatsuyaYamamoto in https://github.com/vuejs/vue-eslint-parser/pull/190
Full Changelog: https://github.com/vuejs/vue-eslint-parser/compare/v9.1.1...v9.2.0
Fix wrong scope reference type for by @ota-meshi in https://github.com/vuejs/vue-eslint-parser/pull/181
<script setup lang=ts> by @ota-meshi in https://github.com/vuejs/vue-eslint-parser/pull/181Full Changelog: https://github.com/vuejs/vue-eslint-parser/compare/v9.1.0...v9.1.1
Add support for parser object to parserOptions.parser by @ota-meshi in https://github.com/vuejs/vue-eslint-parser/pull/165
parserOptions.parser by @ota-meshi in https://github.com/vuejs/vue-eslint-parser/pull/165Full Changelog: https://github.com/vuejs/vue-eslint-parser/compare/v9.0.3...v9.1.0
Fix wrong tokenize for lone ampersand by @ota-meshi in https://github.com/vuejs/vue-eslint-parser/pull/158
Full Changelog: https://github.com/vuejs/vue-eslint-parser/compare/v9.0.2...v9.0.3
Fix crash for script setup with global var in no-obj-calls rule by @ota-meshi in https://github.com/vuejs/vue-eslint-parser/pull/152
Full Changelog: https://github.com/vuejs/vue-eslint-parser/compare/v9.0.1...v9.0.2
## 🐛 Bug Fixes - Fix npm tag. Full Changelog: https://github.com/vuejs/vue-eslint-parser/compare/v9.0.0...v9.0.1
Full Changelog: https://github.com/vuejs/vue-eslint-parser/compare/v9.0.0...v9.0.1
Drop support for Node.js v12 by @ota-meshi in https://github.com/vuejs/vue-eslint-parser/pull/149
<script setup> by @ota-meshi in https://github.com/vuejs/vue-eslint-parser/pull/144<script setup> by @ota-meshi in https://github.com/vuejs/vue-eslint-parser/pull/144Full Changelog: https://github.com/vuejs/vue-eslint-parser/compare/v8.3.0...v9.0.0
Drop support for Node.js v12 by @ota-meshi in https://github.com/vuejs/vue-eslint-parser/pull/149
<script setup> by @ota-meshi in https://github.com/vuejs/vue-eslint-parser/pull/144<script setup> by @ota-meshi in https://github.com/vuejs/vue-eslint-parser/pull/144Full Changelog: https://github.com/vuejs/vue-eslint-parser/compare/v8.3.0...v9.0.0-alpha.0
Fix wrong handling of CRLF in by @ota-meshi in https://github.com/vuejs/vue-eslint-parser/pull/146
<script> by @ota-meshi in https://github.com/vuejs/vue-eslint-parser/pull/146Full Changelog: https://github.com/vuejs/vue-eslint-parser/compare/v8.2.0...v8.3.0
Added support for complex expression in CSS v-bind() by @ota-meshi in https://github.com/vuejs/vue-eslint-parser/pull/143
v-bind() by @ota-meshi in https://github.com/vuejs/vue-eslint-parser/pull/143Full Changelog: https://github.com/vuejs/vue-eslint-parser/compare/v8.1.0...v8.2.0
Upgrade eslint-scope to v7 by @ota-meshi in https://github.com/vuejs/vue-eslint-parser/pull/137
<script setup> by @ota-meshi in https://github.com/vuejs/vue-eslint-parser/pull/142Full Changelog: https://github.com/vuejs/vue-eslint-parser/compare/v8.0.1...v8.1.0
Fix wrong location when having multiple by @ota-meshi in https://github.com/vuejs/vue-eslint-parser/pull/132
<script> by @ota-meshi in https://github.com/vuejs/vue-eslint-parser/pull/132Full Changelog: https://github.com/vuejs/vue-eslint-parser/compare/v8.0.0...v8.0.1
Drop support for node =v14<v14.17.0, v15 and eslint v5 by @ota-meshi in https://github.com/vuejs/vue-eslint-parser/pull/129
parserOptions.vueFeatures.interpolationAsNonHTML to true. by @ota-meshi in https://github.com/vuejs/vue-eslint-parser/pull/130Full Changelog: https://github.com/vuejs/vue-eslint-parser/compare/v7.11.0...v8.0.0
## ⚙️ Updates - #124 Changed to determine parser by extension when parsing non-vue files using multiple parserOptions.parser. ## 🐛 Bug fixes - #126 Fi
parserOptions.parser.parserOptions.parser is used.## ✨ Enhancements - #119 Added defineDocumentVisitor to parserServices. ## 🐛 Bug fixes - #120 Fixed incorrect AST for commented CSS vars injection.
## ✨ Enhancements - #118 Changed to parse v-bind() in . This feature can optionally be turned off.
v-bind() in <style>. This feature can optionally be turned off.## ✨ Enhancements - #116 Change parserOptions.parser to accept multiple lang parsers. ## 🐛 Bug fixes - #115 Fixed parsing error when combining and exp
parserOptions.parser to accept multiple lang parsers.<script> and export in <script setup>.Change the parser so that if the user explicitly installs espree v8 and specifies espree for parserOptions.parser, it will be use.
espree v8 and specifies espree for parserOptions.parser, it will be use.## ⚙️ Updates - #111 Revert: changed to use sourceType: module by default when parsing .
sourceType: module by default when parsing <script setup>.Changed two tags to be parseable when using .
<script setup>
<script> tags to be parseable when using <script setup>.sourceType: module by default when parsing <script setup>.<script setup>.defineTemplateBodyVisitor to change the trigger to visit the template nodes.
This is used to create special rules that suppress warnings for no-unused-vars rule. e.g. vue/script-setup-uses-vars rule## :bug: Bug fixes - #103 Changes the parser to be case sensitive for the name used to determine the element when the file is SFC.
## ⚙️ Updates - #100 Upgrade esquery and use new option. You can now use queries such as :first-child to traverse templates.
:first-child to traverse templates.## :bug: Bug fixes - #97 Fixed wrong AST for v-for="(a, index) in list"
v-for="(a, index) in list"## :bug: Bug fixes - #96 Fixed parsing errors in multiple v-for aliases in ecmaVersion: 5.
## ✨ Enhancements - #91 Added defineCustomBlocksVisitor() to parserServices. ## ⚙️ Updates - #90 Changed the parsing of custom block to parse like Vue
defineCustomBlocksVisitor() to parserServices.@typescript-eslint and prettierAdded parserOptions.vueFeatures option.
parserOptions.vueFeatures option.
parserOptions.vueFeatures.interpolationAsNonHTML option.parserOptions.vueFeatures.filter option.@typescript-eslint## 🐛 Bug Fixes - #74 fixed wrong location calculation when including CRLF.
27a275f530b27e4714183c535d2e121aadf9e3bd updates the default parser loading logic to use the espree of loaded ESLint.
espree of loaded ESLint.57c86241b16e3bd3670a340a0f9c117dd419191c dropped Node.js 6.x support. And the validation of parserOptions got more strict (by espree's update).
parserOptions got more strict (by espree's update).parserServices.getDocumentFragment(). You can get the root node of *.vue file's AST.af6a986683e17f779b565b0efde6c57bc63e517b fixed installation warning about ESLint v6.
7d729691da6bc365a7f18e379bb966c7d0ff0acc fixed false positive of memory-leak detection.
4d734ecc37d74d682b49cdad3f38e639fc3d4012 fixed unexpected behavior on dots in dynamic arguments (refs https://github.com/vuejs/vue/issues/9577)
ba72875586379c11a8dc6697bf203caaebf2249d fixed a bug that references in dynamic argument is not resolved.
7a1bffda55ea727d002cf2c2bbdb6800bc9a644f fixed the wrong location of auto-generated .prop modifiers.
.prop modifiers.This release supported the new syntax in Vue.js 2.6 :tada:
This release supported the new syntax in Vue.js 2.6 :tada:
v-bind directive with .prop modifier. (actually, this is experimental and behind flag in Vue.js 2.6)v-slot directive and that shorthand. (https://vuejs.org/v2/api/#v-slot)This release contains a drastic change about VDirectiveKey AST node because now the directive key have gotten to be able to have JavaScript expression.
export interface VDirectiveKey extends HasLocation, HasParent {
type: "VDirectiveKey"
parent: VAttribute
- name: string
- argument: string | null
- modifiers: string[]
- shorthand: boolean
+ name: VIdentifier
+ argument: VExpressionContainer | VIdentifier | null
+ modifiers: VIdentifier[]
}
name, argument, and modifiers to AST nodes from strings. Especially, argument will be a VExpressionContainer node if the directive has dynamic argument syntax.shorthand member. To check wheather the directive key is a shorthand or not, use name.rawName member.
:foo ... directiveKey.name.rawName is ":" (and directiveKey.name.name is "bind")..foo ... directiveKey.name.rawName is "." (and directiveKey.name.name is "bind" and directiveKey.modifiers includes the identifier node of "prop").@foo ... directiveKey.name.rawName is "@" (and directiveKey.name.name is "on").#foo ... directiveKey.name.rawName is "#" (and directiveKey.name.name is "slot").Nothing published for this version
71131917b04383a45c37314414ba9ce4da943390 changed the AST of slot-scope attributes for https://github.com/vuejs/eslint-plugin-vue/issues/722.
slot-scope attributes for https://github.com/vuejs/eslint-plugin-vue/issues/722.v-on directives (https://github.com/vuejs/eslint-plugin-vue/issues/716).v-pre elements (https://github.com/vuejs/eslint-plugin-vue/issues/733).309cf520952bd118b1e018700a2a16ce78b1a3c7 fixed a bug that it had constructed VFilterSequenceExpression nodes on the places filters are disallowed.
VFilterSequenceExpression nodes on the places filters are disallowed.595b9aea157888eb69459f985aa9c4b2e667ec41 fixed the bug that new nodes for Vue.js filters syntax can have wrong end location if there is a line break a
41cf26414fa3b740e72b6e52312a7e7fd0ac739b fixed wrong locations of new nodes for Vue.js filters syntax.
1fe41275cdea2414ffad4063d96b35ed182c2fde changed the AST for Vue.js filters syntax. It was BinaryExpression nodes before, but it's VFilterSequenceExpr
BinaryExpression nodes before, but it's VFilterSequenceExpression nodes now.04bf33b7f8a282534cc572f02f31812ea5a51fb7 made the parser throwing syntax errors on illegal slot-scope attributes.
slot-scope attributes.Your coding agent can read these notes before it upgrades. Set up the MCP server →