Releases: vuejs/eslint-plugin-vue
v9.5.1
π Bug Fixes
- #1976 Fixed false positives for
<script setup>
with TypeScript invue/no-undef-components
rule.
Full Changelog: v9.5.0...v9.5.1
v9.5.0
β¨ Enhancements
- #1965 Added
vue/no-ref-object-destructure
rule that reports the destructuring of ref objects causing the value to lose reactivity. - #1967 Changed
vue/no-undef-components
rule to report when type-only imports are used. - #1966 Added
vue/padding-line-between-tags
rule that requires or disallows newlines between sibling tags in template. - #1968 Added
vue/define-emits-declaration
rule that enforces the declaration style ofdefineEmits
. - #1968 Added
vue/define-props-declaration
rule that enforces the declaration style ofdefineProps
.
βοΈ Updates
- #1955 Changed
vue/order-in-components
rule to be auto-fixable even when usingPropType
.
Full Changelog: v9.4.0...v9.5.0
Thanks @dev1437, @Amorites, @acupofspirt for your contributions!
v9.4.0
π Bug Fixes
- #1942 Fixed false negatives for delete operation in
vue/no-mutating-props
rule
Full Changelog: v9.3.0...v9.4.0
v9.3.0
βοΈ Updates
- #1934 Added support for
<script setup>
tovue/component-name-in-template-casing
rule.
π Bug Fixes
- #1937 Fixed false negatives for template literals in
vue/custom-event-name-casing
,vue/no-restricted-custom-event
, andvue/require-explicit-emits
rules.
Full Changelog: v9.2.0...v9.3.0
v9.2.0
βοΈ Updates
- #1917 Added support for Vue 2.7 to
vue/no-unsupported-features
rule.
Full Changelog: v9.1.1...v9.2.0
v9.1.1
π Bug Fixes
- #1909 Fixed false negatives in
vue/no-unused-components
rule
Full Changelog: v9.1.0...v9.1.1
v9.1.0
π Bug Fixes
- #1907 Fixed
vue/prefer-import-from-vue
rule to skip side-effect imports in.d.ts
files.
Full Changelog: v9.0.1...v9.1.0
v9.0.1
π Bug Fixes
- #1896 Fixed false positive for script setup in
vue/no-expose-after-await
rule
Full Changelog: v9.0.0...v9.0.1
v9.0.0
π₯ Breaking Changes
- #1847 Drop support for Node.js v12.
- #1846 Change default casing of
vue/custom-event-name-casing
rule tocamelCase
. - #1883 Potentially breaking bug fix: Enable
vue/html-closing-bracket-spacing
andvue/html-closing-bracket-newline
rules for top-level tags. - #1848, #1892 Change presets configs and remove unused internal methods. (see below)
- #1849 Upgrade vue-eslint-parser to v9. (see below)
- #1881 Remove deprecated rules. (see below)
Change Vue 3 presets configs
- Change
plugin:vue/vue3-essential
config:- Add
vue/no-child-content
rule - Add
vue/no-expose-after-await
rule - Add
vue/no-reserved-component-names
rule - Add
vue/no-use-computed-property-like-method
rule - Add
vue/no-v-text-v-html-on-component
rule - Add
vue/prefer-import-from-vue
rule - Add
vue/valid-attribute-name
rule
- Add
- Change
plugin:vue/vue3-strongly-recommended
config:- Same changes as above
- Change
plugin:vue/vue3-recommended
config:- Same changes as above
Change Vue 2 preset configs
- Change
plugin:vue/essential
config:- Add
vue/no-child-content
rule - Add
vue/no-reserved-component-names
rule - Add
vue/no-use-computed-property-like-method
rule - Add
vue/no-v-text-v-html-on-component
rule - Add
vue/valid-attribute-name
rule - Add
vue/valid-model-definition
rule - Add
vue/no-export-in-script-setup
rule * - Add
vue/no-ref-as-operand
rule * - Add
vue/no-setup-props-destructure
rule * - Add
vue/return-in-emits-validator
rule * - Add
vue/valid-define-emits
rule * - Add
vue/valid-define-props
rule *
- Add
- Change
plugin:vue/strongly-recommended
config:- Same changes as above
- Change
plugin:vue/recommended
config:- Same changes as above
Note: The rules marked with * are now included in the plugin:vue/essential
config because @vue/composition-api and unplugin-vue2-script-setup add (limited) support for these Vue 3 features in Vue 2. If you don't use those libraries, enabling these rules shouldn't affect you.
Deprecated features
vue/no-invalid-model-keys
rule is now deprecated, as it's renamed tovue/valid-model-definition
vue/script-setup-uses-vars
rule is now deprecated, as it's no longer needed with the upgrade to vue-eslint-parser to v9vue/setup-compiler-macros
environment is now deprecated, as it's no longer needed with the upgrade to vue-eslint-parser to v9
Removed features
Previously deprecated rules are removed completely:
vue/experimental-script-setup-vars
rule (deprecated in v7.13.0): not needed anymorevue/name-property-casing
rule (deprecated in v7.0.0): usevue/component-definition-name-casing
insteadvue/no-confusing-v-for-v-if
rule (deprecated in v5.0.0): usevue/no-use-v-if-with-v-for
insteadvue/no-unregistered-components
rule (deprecated in v8.4.0): usevue/no-undef-components
instead
Previously deprecated internal util methods are removed completely:
getComponentProps
: usegetComponentPropsFromOptions
insteadgetComponentEmits
: usegetComponentEmitsFromOptions
instead
β¨ Enhancements
- #1874 Make
vue/match-component-file-name
rule fixable via editor suggestions. - #1885 Support
<script setup>
invue/no-expose-after-await
rule. - #1851, #1892 Add
vue/valid-attribute-name
rule.
π Bug Fixes
- #1861 Fix wrong behavior of
vue/define-macros-order
rule when there are multiple<script>
tags. - #1883 Potentially breaking bug fix: Enable
vue/html-closing-bracket-spacing
andvue/html-closing-bracket-newline
rules for top-level tags.
Full Changelog: v8.7.0...v9.0.0
v8.7.1
π Bug Fixes
- #1861 Fixed false positives for multiple scripts in
vue/define-macros-order
rule.
Full Changelog: v8.7.0...v8.7.1