ESLint Configuration for xwtec vue projects
# with yarn
yarn add --dev eslint @xwtec/eslint-config-vue
# with npm
npm install --save-dev eslint @xwtec/eslint-config-vue
Add the following code to your eslint.config.mjs
.
import xwtecEslintConfigVue from '@xwtec/eslint-config-vue';
export default [
xwtecEslintConfigVue,
{
rules: {
'unicorn/no-array-for-each': 'error',
},
},
].flat();
# | Type | Rule | Description |
---|---|---|---|
1 | error | vue/no-arrow-functions-in-watch | disallow using arrow functions to define watcher |
2 | error | vue/no-async-in-computed-properties | disallow asynchronous actions in computed properties |
3 | error | vue/no-child-content | disallow element's child contents which would be overwritten by a directive like v-html or v-text
|
4 | error | vue/no-computed-properties-in-data | disallow accessing computed properties in data . |
5 | error | vue/no-deprecated-dollar-listeners-api | disallow using deprecated $listeners (in Vue.js 3.0.0+) |
6 | error | vue/no-deprecated-events-api | disallow using deprecated events api (in Vue.js 3.0.0+) |
7 | error | vue/no-deprecated-filter | disallow using deprecated filters syntax (in Vue.js 3.0.0+) |
8 | error | vue/no-deprecated-functional-template | disallow using deprecated the functional template (in Vue.js 3.0.0+) |
9 | error | vue/no-deprecated-html-element-is | disallow using deprecated the is attribute on HTML elements (in Vue.js 3.0.0+) |
10 | error | vue/no-deprecated-inline-template | disallow using deprecated inline-template attribute (in Vue.js 3.0.0+) |
11 | error | vue/no-deprecated-props-default-this | disallow deprecated this access in props default function (in Vue.js 3.0.0+) |
12 | error | vue/no-deprecated-router-link-tag-prop | disallow using deprecated tag property on RouterLink (in Vue.js 3.0.0+) |
13 | error | vue/no-deprecated-v-is | disallow deprecated v-is directive (in Vue.js 3.1.0+) |
14 | error | vue/no-deprecated-v-on-native-modifier | disallow using deprecated .native modifiers (in Vue.js 3.0.0+) |
15 | error | vue/no-deprecated-vue-config-keycodes | disallow using deprecated Vue.config.keyCodes (in Vue.js 3.0.0+) |
16 | error | vue/no-dupe-keys | disallow duplication of field names |
17 | error | vue/no-dupe-v-else-if | disallow duplicate conditions in v-if / v-else-if chains |
18 | error | vue/no-duplicate-attributes | disallow duplication of attributes |
19 | error | vue/no-export-in-script-setup | disallow export in <script setup>
|
20 | error | vue/no-expose-after-await | disallow asynchronously registered expose
|
21 | error | vue/no-lifecycle-after-await | disallow asynchronously registered lifecycle hooks |
22 | error | vue/no-parsing-error | disallow parsing errors in <template>
|
23 | error | vue/no-reserved-keys | disallow overwriting reserved keys |
24 | error | vue/no-reserved-props | disallow reserved names in props |
25 | error | vue/no-side-effects-in-computed-properties | disallow side effects in computed properties |
26 | error | vue/no-template-key | disallow key attribute on <template>
|
27 | error | vue/no-textarea-mustache | disallow mustaches in <textarea>
|
28 | error | vue/no-use-computed-property-like-method | disallow use computed property like method |
29 | error | vue/no-useless-template-attributes | disallow useless attribute on <template>
|
30 | error | vue/no-v-for-template-key-on-child | disallow key of <template v-for> placed on child elements |
31 | error | vue/no-v-text-v-html-on-component | disallow v-text / v-html on component |
32 | error | vue/no-watch-after-await | disallow asynchronously registered watch
|
33 | error | vue/require-slots-as-functions | enforce properties of $slots to be used as a function |
34 | error | vue/require-toggle-inside-transition | require control the display of the content inside <transition>
|
35 | error | vue/return-in-emits-validator | enforce that a return statement is present in emits validator |
36 | error | vue/valid-attribute-name | require valid attribute names |
37 | error | vue/valid-define-emits | enforce valid defineEmits compiler macro |
38 | error | vue/valid-define-props | enforce valid defineProps compiler macro |
39 | error | vue/valid-v-bind | enforce valid v-bind directives |
40 | error | vue/valid-v-cloak | enforce valid v-cloak directives |
41 | error | vue/valid-v-else | enforce valid v-else directives |
42 | error | vue/valid-v-else-if | enforce valid v-else-if directives |
43 | error | vue/valid-v-for | enforce valid v-for directives |
44 | error | vue/valid-v-html | enforce valid v-html directives |
45 | error | vue/valid-v-if | enforce valid v-if directives |
46 | error | vue/valid-v-is | enforce valid v-is directives |
47 | error | vue/valid-v-memo | enforce valid v-memo directives |
48 | error | vue/valid-v-model | enforce valid v-model directives |
49 | error | vue/valid-v-on | enforce valid v-on directives |
50 | error | vue/valid-v-once | enforce valid v-once directives |
51 | error | vue/valid-v-pre | enforce valid v-pre directives |
52 | error | vue/valid-v-show | enforce valid v-show directives |
53 | error | vue/valid-v-slot | enforce valid v-slot directives |
54 | error | vue/valid-v-text | enforce valid v-text directives |
# | Type | Rule | Description |
---|---|---|---|
1 | warn | vue/no-mutating-props | disallow mutation of component props |
2 | warn | vue/no-reserved-component-names | disallow the use of reserved names in component definitions |
3 | warn | vue/no-unused-vars | disallow unused variable definitions of v-for directives or scope attributes |
4 | warn | vue/prop-name-casing | enforce specific casing for the Prop name in Vue components |
5 | warn | vue/require-default-prop | require default value for props |
6 | warn | vue/require-render-return | enforce render function to always return value |
7 | warn | vue/require-valid-default-prop | enforce props default values to be valid |
8 | warn | vue/return-in-computed-property | enforce that a return statement is present in computed property |
9 | warn | vue/valid-template-root | enforce valid template root |
10 | warn | vue/valid-v-bind-sync | enforce valid .sync modifier on v-bind directives |
# | Type | Rule | Description |
---|---|---|---|
1 | warn | vue/attribute-hyphenation | enforce attribute naming style on custom components in template |
2 | warn | vue/attributes-order | enforce order of attributes |
3 | warn | vue/block-order | enforce order of component top-level elements |
4 | warn | vue/component-name-in-template-casing | enforce specific casing for the component naming style in template |
5 | warn | vue/define-macros-order | enforce order of defineEmits and defineProps compiler macros |
6 | warn | vue/dot-notation | Enforce dot notation whenever possible in <template>
|
7 | error | vue/eqeqeq | Require the use of === and !== in <template>
|
8 | warn | vue/html-comment-content-spacing | enforce unified spacing in HTML comments |
9 | warn | vue/html-self-closing | enforce self-closing style |
10 | warn | vue/next-tick-style | enforce Promise or callback style in nextTick
|
11 | warn | vue/no-deprecated-data-object-declaration | disallow using deprecated object declaration on data (in Vue.js 3.0.0+) |
12 | warn | vue/no-deprecated-dollar-scopedslots-api | disallow using deprecated $scopedSlots (in Vue.js 3.0.0+) |
13 | warn | vue/no-deprecated-scope-attribute | disallow deprecated scope attribute (in Vue.js 2.5.0+) |
14 | warn | vue/no-deprecated-slot-scope-attribute | disallow deprecated slot-scope attribute (in Vue.js 2.6.0+) |
15 | warn | vue/no-deprecated-v-on-number-modifiers | disallow using deprecated number (keycode) modifiers (in Vue.js 3.0.0+) |
16 | warn | vue/no-ref-as-operand | disallow use of value wrapped by ref() (Composition API) as an operand |
17 | warn | vue/no-required-prop-with-default | enforce props with default values to be optional |
18 | warn | vue/no-shared-component-data | enforce component's data property to be a function |
19 | warn | vue/no-unsupported-features | disallow unsupported Vue.js syntax on the specified version |
20 | warn | vue/no-useless-mustaches | disallow unnecessary mustache interpolations |
21 | warn | vue/no-useless-v-bind | disallow unnecessary v-bind directives |
22 | warn | vue/object-shorthand | Require or disallow method and property shorthand syntax for object literals in <template>
|
23 | warn | vue/order-in-components | enforce order of properties in components |
24 | warn | vue/padding-line-between-blocks | require or disallow padding lines between blocks |
25 | warn | vue/prefer-define-options | enforce use of defineOptions instead of default export. |
26 | warn | vue/prefer-import-from-vue | enforce import from 'vue' instead of import from '@vue/*' |
27 | warn | vue/prefer-separate-static-class | require static class names in template to be in a separate class attribute |
28 | warn | vue/prefer-template | Require template literals instead of string concatenation in <template>
|
29 | warn | vue/require-prop-type-constructor | require prop type to be a constructor |
30 | error | vue/this-in-template | disallow usage of this in template |
31 | warn | vue/v-bind-style | enforce v-bind directive style |
32 | warn | vue/v-for-delimiter-style | enforce v-for directive's delimiter style |
33 | warn | vue/v-if-else-key | require key attribute for conditionally rendered repeated components |
34 | warn | vue/v-on-event-hyphenation | enforce v-on event naming style on custom components in template |
35 | warn | vue/v-on-style | enforce v-on directive style |
36 | warn | vue/v-slot-style | enforce v-slot directive style |
37 | warn | vue/valid-next-tick | enforce valid nextTick function calls |
MIT © xwtec