Releases: vuejs/eslint-plugin-vue
Releases · vuejs/eslint-plugin-vue
v10.0.0
💥 Breaking changes
- #2630 Changed Versioning Policy:
- Allow minor versions of this plugin to enhance the checks for new features in Vue and Nuxt.
- Allow updating deprecated/reserved HTML+SVG element tag names in minor versions, see #2171.
- #2645 Removed deprecated rules (see removed rules).
- #2669 Dropped support for old versions of ESLint and Node.js. New minimum requirements:
- Node.js:
^18.18.0 || ^20.9.0 || >=21.1.0
- ESLint:
^8.57.0 || ^9.0.0
- Node.js:
- Updated configs:
- #2627 Added
vue/block-order
rule to recommended configs (replaces the removedvue/component-tags-order
rule). - #2628 Added
vue/no-deprecated-delete-set
rule to vue3-essential config. - #2629 Added
vue/no-deprecated-model-definition
rule to vue3-essential config. - #2640 Added
vue/no-required-prop-with-default
rule to recommended configs. - #2653 Added
vue/valid-define-options
rule to vue3-essential config. - #2674 Removed globals from configs.
- #2648 Renamed
.eslintrc
configs (to matcheslint.config.js
config names; see PR for comparison). - #2668 Changed
.eslintrc
base config so that vue-eslint-parser is only used for.vue
files.
- #2627 Added
- #2670 Changed vue-eslint-parser to peer dependency.
- #2697 Upgraded vue-eslint-parser to v10.
- This includes vuejs/vue-eslint-parser#195, which should make the parser much faster for large TypeScript projects ⚡
- #2153 Added
slots
andexpose
to the default order ofvue/order-in-components
rule. - #2626 Removed legacy option from
vue/custom-event-name-casing
rule. - #2655 Removed unused
runOutsideVue
option fromvue/sort-keys
rule. - #2652 Removed
setup-compiler-macros
environments.
✨ Enhancements
- #2693 Improved type resolution for generic types and improved the rules for checking type-only macros.
- #2684 Added
vue/no-import-compiler-macros
rule that disallows importing Vue compiler macros. - #2694 Added
except
option tovue/prefer-true-attribute-shorthand
rule. - #2311 Improved the plugin to check for objects declared with Nuxt3
defineNuxtComponent()
.
⚙️ Updates
- #2171 Updated resources.
- #2675 Deprecated Vue 2 only rules. They will be removed in eslint-plugin-vue v11.
Full Changelog: v9.33.0...v10.0.0
v9.33.0
✨ Enhancements
- #2639 Added
vue/no-implicit-coercion
rule to disallow shorthand type conversions in<template>
. - #2680 Improved
vue/no-ref-as-operand
rule to checkemit
payloads. - #2679 Added
ignoreProps
option tovue/prop-name-casing
rule.
🐛 Bug Fixes
- #2636 Fixed crash in
vue/prefer-use-template-ref
rule whensetup
is an arrow function. - #2682 Fixed regex matching order in
vue/no-bare-strings-in-template
rule. - #2683 Fixed false positives for union type prop definitions in
vue/max-props
rule.
Full Changelog: v9.32.0...v9.33.0
v9.32.0
✨ Enhancements
- #2598 Added
checkMultiRootNodes
option tovue/no-duplicate-attr-inheritance
rule and changed to ignore multi-root components by default. - #2610 Added
ignoreElementNamespaces
option tovue/no-v-text-v-html-on-component
rule. - #2609 Added
ignoreTags
option tovue/attribute-hyphenation
rule andvue/v-on-event-hyphenation
rule. - #2611 Added
vue/restricted-component-names
rule that enforces using only specific component names. - #2620 Added
vue/slot-name-casing
rule that enforces specific casing for slot names. - #2617 Added support for type references in
vue/require-explicit-slots
rule. - #2608 Added support for
shallowRef
invue/prefer-use-template-ref
rule.
🐛 Bug Fixes
- #2612 Changed
vue/prefer-use-template-ref
rule to only check root-level variables.
Full Changelog: v9.31.0...v9.32.0
v9.31.0
✨ Enhancements
- #2594 Added
caseSensitive
option tovue/no-reserved-component-names
rule. - #2554 Added
vue/prefer-use-template-ref
rule that requires usinguseTemplateRef()
instead ofref()
for template refs. - #2595 Made
vue/no-empty-component-block
rule auto-fixable.
🐛 Bug Fixes
- #2591 Fixed false positives for
v-bind:name
invue/require-explicit-slots
rule.
⚙️ Updates
- #2593 Updated
vue/define-macros-order
rule to skip TypeScriptdeclare
statements.
Full Changelog: v9.30.0...v9.31.0
v9.30.0
🐛 Bug Fixes
- #2585 Fixed
vue/custom-event-name-casing
rule to checkdefineEmits()
variable and$emit()
in<template>
. - #2586 Fixed false negatives and false positives in
vue/require-valid-default-prop
rule.
Full Changelog: v9.29.1...v9.30.0
v9.29.1
v9.29.0
✨ Enhancements
New Rules
- #2540 Added
vue/no-deprecated-delete-set
rule that disallows using deprecated$delete
and$set
.
Others
- #2513 Added support for Vuex and Pinia to
vue/no-undef-properties
rule. - #2541 Added support for Vue 3.5's
useTemplateRef()
tovue/no-unused-refs
rule. - Added support for Vue 3.5's props destructure to various rules:
- #2551 to
vue/require-valid-default-prop
rule. - #2552 to
vue/require-default-prop
rule. - #2553 to
vue/no-boolean-default
rule. - #2560 to
vue/no-required-prop-with-default
rule. - #2562 to
vue/no-restricted-props
rule. - #2550 to
vue/no-setup-props-reactivity-loss
rule.
- #2551 to
⚙️ Updates
v9.28.0
✨ Enhancements
New Rules
- #2430 Added
vue/max-props
rule that enforces the maximum number of props in Vue components. - #2494 Added
vue/require-default-export
rule that requires components to be thedefault
export. - #2525 Added
vue/max-template-depth
rule that enforces the maximum depth of<template>
.
New Features
- #2501 Allow specifying custom macros in
vue/define-macros-order
rule. - #2537 Added
additionalDirectives
option tovue/require-toggle-inside-transition
rule.
🐛 Bug Fixes
- #2348 Fixed false positives/negatives for siblings in
vue/v-if-else-key
rule. - #2505 Fixed false positives for JavaScript components in
vue/require-typed-object-prop
rule. - #2511 Fixed false negatives for
v-model
directive invue/attribute-hyphenation
rule. - #2533 Fixed auto-fix for
vue/attribute-hyphenation
rule to skipv-bind.sync
. - #2529 Fixed auto-fix for
vue/no-deprecated-slot-attribute
rule to handlev-for
with dynamicslot
. - #2530 Fixed auto-fix for
vue/no-deprecated-slot-attribute
rule to skip dynamic components.
⚙️ Updates
- #2498 Renamed flat config names for inspector.
Full Changelog: v9.27.0...v9.28.0
v9.27.0
✨ Enhancements
- #2487 Improved
vue/require-toggle-inside-transition
rule to understandv-bind:appear
.
🐛 Bug Fixes
- #2489 Fixed false negatives for elements inside template literals in
vue/no-setup-props-reactivity-loss
rule.
⚙️ Updates
- #2476 Added name property to flat configs.
- #2488 Upgraded vue-eslint-parser to v9.4.3.
Full Changelog: v9.26.0...v9.27.0
v9.26.0
✨ Enhancements
- #2457 Improved some rules to understand MathML elements:
vue/component-name-in-template-casing
vue/no-deprecated-html-element-is
vue/no-undef-components
vue/no-unused-components
vue/script-setup-uses-vars
(note that this rule is deprecated!)
🐛 Bug Fixes
- #2456 Fixed
vue/require-default-prop
rule to ignore the spread and continue checking. - #2427 Fixed
vue/require-typed-ref
rule to ignore<script>
blocks withoutlang="ts"
in.vue
files.
Full Changelog: v9.25.0...v9.26.0