@@ -31,20 +31,48 @@ Create `.eslintrc.*` file to configure rules. See also: [http://eslint.org/docs/
31
31
32
32
Example ** .eslintrc.js** :
33
33
34
- ``` javascript
34
+ ``` js
35
35
module .exports = {
36
36
extends: [
37
37
' eslint:recommended' ,
38
38
' plugin:vue/recommended' // or 'plugin:vue/base'
39
39
],
40
40
rules: {
41
41
// override/add rules' settings here
42
- ' vue/no-invalid -v-if' : ' error'
42
+ ' vue/valid -v-if' : ' error'
43
43
}
44
44
}
45
45
```
46
46
47
- ## ⚙ Configs
47
+ ### Attention
48
+
49
+ All component-related rules are being applied to code that passes any of the following checks:
50
+
51
+ * ` Vue.component() ` expression
52
+ * ` export default {} ` in ` .vue ` or ` .jsx ` file
53
+
54
+ If you however want to take advantage of our rules in any of your custom objects that are Vue components, you might need to use special comment ` // @vue/component ` that marks object in the next line as a Vue component in any file, e.g.:
55
+
56
+ ``` js
57
+ // @vue/component
58
+ const CustomComponent = {
59
+ name: ' custom-component' ,
60
+ template: ' <div></div>'
61
+ }
62
+ ```
63
+ ``` js
64
+ Vue .component (' AsyncComponent' , (resolve , reject ) => {
65
+ setTimeout (() => {
66
+ // @vue/component
67
+ resolve ({
68
+ name: ' async-component' ,
69
+ template: ' <div></div>'
70
+ })
71
+ }, 500 )
72
+ })
73
+ ```
74
+
75
+ ## :gear : Configs
48
76
49
77
This plugin provides two predefined configs:
50
78
- ` plugin:vue/base ` - contains necessary settings for this plugin to work properly
@@ -58,27 +86,41 @@ No rules are enabled by `plugin:vue/base` config. The `plugin:vue/recommended` c
58
86
59
87
The ` --fix ` option on the command line automatically fixes problems reported by rules which have a wrench :wrench : below.
60
88
61
- Deprecated rules witch should be used with caution and only enabled when you know what you are doing have a warning :warning : icon.
62
-
63
89
<!-- RULES_TABLE_START-->
64
90
65
- ### Stylistic Issues
91
+ ### Possible Errors
66
92
67
93
| | Rule ID | Description |
68
94
| :---| :--------| :------------|
69
- | :wrench : | [ attribute-hyphenation] ( ./docs/rules/attribute-hyphenation.md ) | Define a style for the props casing in templates. |
70
- | | [ html-quotes] ( ./docs/rules/html-quotes.md ) | enforce quotes style of HTML attributes. |
71
- | :wrench : | [ name-property-casing] ( ./docs/rules/name-property-casing.md ) | Requires specific casing for the name property in Vue components |
72
- | :wrench : | [ v-bind-style] ( ./docs/rules/v-bind-style.md ) | enforce ` v-bind ` directive style. |
73
- | :wrench : | [ v-on-style] ( ./docs/rules/v-on-style.md ) | enforce ` v-on ` directive style. |
95
+ | | [ no-dupe-keys] ( ./docs/rules/no-dupe-keys.md ) | Prevents duplication of field names. |
96
+ | :white_check_mark : | [ no-parsing-error] ( ./docs/rules/no-parsing-error.md ) | disallow parsing errors in ` <template> ` . |
97
+ | | [ no-reservered-keys] ( ./docs/rules/no-reservered-keys.md ) | Prevent overwrite reserved keys. |
98
+ | | [ no-shared-component-data] ( ./docs/rules/no-shared-component-data.md ) | Enforces component's data property to be a function. |
99
+ | | [ no-template-key] ( ./docs/rules/no-template-key.md ) | disallow ` key ` attribute on ` <template> ` . |
100
+ | | [ require-render-return] ( ./docs/rules/require-render-return.md ) | Enforces render function to always return value. |
101
+ | | [ require-valid-default-prop] ( ./docs/rules/require-valid-default-prop.md ) | Enforces props default values to be valid. |
102
+ | | [ return-in-computed-property] ( ./docs/rules/return-in-computed-property.md ) | Enforces that a return statement is present in computed property. |
103
+ | :white_check_mark : | [ valid-template-root] ( ./docs/rules/valid-template-root.md ) | enforce valid template root. |
104
+ | :white_check_mark : | [ valid-v-bind] ( ./docs/rules/valid-v-bind.md ) | enforce valid ` v-bind ` directives. |
105
+ | :white_check_mark : | [ valid-v-cloak] ( ./docs/rules/valid-v-cloak.md ) | enforce valid ` v-cloak ` directives. |
106
+ | :white_check_mark : | [ valid-v-else-if] ( ./docs/rules/valid-v-else-if.md ) | enforce valid ` v-else-if ` directives. |
107
+ | :white_check_mark : | [ valid-v-else] ( ./docs/rules/valid-v-else.md ) | enforce valid ` v-else ` directives. |
108
+ | :white_check_mark : | [ valid-v-for] ( ./docs/rules/valid-v-for.md ) | enforce valid ` v-for ` directives. |
109
+ | :white_check_mark : | [ valid-v-html] ( ./docs/rules/valid-v-html.md ) | enforce valid ` v-html ` directives. |
110
+ | :white_check_mark : | [ valid-v-if] ( ./docs/rules/valid-v-if.md ) | enforce valid ` v-if ` directives. |
111
+ | :white_check_mark : | [ valid-v-model] ( ./docs/rules/valid-v-model.md ) | enforce valid ` v-model ` directives. |
112
+ | :white_check_mark : | [ valid-v-on] ( ./docs/rules/valid-v-on.md ) | enforce valid ` v-on ` directives. |
113
+ | :white_check_mark : | [ valid-v-once] ( ./docs/rules/valid-v-once.md ) | enforce valid ` v-once ` directives. |
114
+ | :white_check_mark : | [ valid-v-pre] ( ./docs/rules/valid-v-pre.md ) | enforce valid ` v-pre ` directives. |
115
+ | :white_check_mark : | [ valid-v-show] ( ./docs/rules/valid-v-show.md ) | enforce valid ` v-show ` directives. |
116
+ | :white_check_mark : | [ valid-v-text] ( ./docs/rules/valid-v-text.md ) | enforce valid ` v-text ` directives. |
74
117
75
118
76
119
### Best Practices
77
120
78
121
| | Rule ID | Description |
79
122
| :---| :--------| :------------|
80
123
| :wrench : | [ html-end-tags] ( ./docs/rules/html-end-tags.md ) | enforce end tag style. |
81
- | :wrench ::warning : | [ html-no-self-closing] ( ./docs/rules/html-no-self-closing.md ) | disallow self-closing elements. - (deprecated) |
82
124
| | [ no-async-in-computed-properties] ( ./docs/rules/no-async-in-computed-properties.md ) | Check if there are no asynchronous actions inside computed properties. |
83
125
| :white_check_mark : | [ no-confusing-v-for-v-if] ( ./docs/rules/no-confusing-v-for-v-if.md ) | disallow confusing ` v-for ` and ` v-if ` on the same element. |
84
126
| | [ no-duplicate-attributes] ( ./docs/rules/no-duplicate-attributes.md ) | disallow duplicate attributes. |
@@ -90,38 +132,45 @@ Deprecated rules witch should be used with caution and only enabled when you kno
90
132
| :white_check_mark : | [ require-v-for-key] ( ./docs/rules/require-v-for-key.md ) | require ` v-bind:key ` with ` v-for ` directives. |
91
133
92
134
93
- ### Variables
135
+ ### Stylistic Issues
94
136
95
137
| | Rule ID | Description |
96
138
| :---| :--------| :------------|
97
- | :white_check_mark : | [ jsx-uses-vars] ( ./docs/rules/jsx-uses-vars.md ) | Prevent variables used in JSX to be marked as unused |
139
+ | :wrench : | [ attribute-hyphenation] ( ./docs/rules/attribute-hyphenation.md ) | Define a style for the props casing in templates. |
140
+ | | [ html-quotes] ( ./docs/rules/html-quotes.md ) | enforce quotes style of HTML attributes. |
141
+ | :wrench : | [ name-property-casing] ( ./docs/rules/name-property-casing.md ) | Requires specific casing for the name property in Vue components |
142
+ | :wrench : | [ v-bind-style] ( ./docs/rules/v-bind-style.md ) | enforce ` v-bind ` directive style. |
143
+ | :wrench : | [ v-on-style] ( ./docs/rules/v-on-style.md ) | enforce ` v-on ` directive style. |
98
144
99
145
100
- ### Possible Errors
146
+ ### Variables
101
147
102
148
| | Rule ID | Description |
103
149
| :---| :--------| :------------|
104
- | | [ no-dupe-keys] ( ./docs/rules/no-dupe-keys.md ) | Prevents duplication of field names. |
105
- | :white_check_mark : | [ no-invalid-template-root] ( ./docs/rules/no-invalid-template-root.md ) | disallow invalid template root. |
106
- | :white_check_mark : | [ no-invalid-v-bind] ( ./docs/rules/no-invalid-v-bind.md ) | disallow invalid ` v-bind ` directives. |
107
- | :white_check_mark : | [ no-invalid-v-cloak] ( ./docs/rules/no-invalid-v-cloak.md ) | disallow invalid ` v-cloak ` directives. |
108
- | :white_check_mark : | [ no-invalid-v-else-if] ( ./docs/rules/no-invalid-v-else-if.md ) | disallow invalid ` v-else-if ` directives. |
109
- | :white_check_mark : | [ no-invalid-v-else] ( ./docs/rules/no-invalid-v-else.md ) | disallow invalid ` v-else ` directives. |
110
- | :white_check_mark : | [ no-invalid-v-for] ( ./docs/rules/no-invalid-v-for.md ) | disallow invalid ` v-for ` directives. |
111
- | :white_check_mark : | [ no-invalid-v-html] ( ./docs/rules/no-invalid-v-html.md ) | disallow invalid ` v-html ` directives. |
112
- | :white_check_mark : | [ no-invalid-v-if] ( ./docs/rules/no-invalid-v-if.md ) | disallow invalid ` v-if ` directives. |
113
- | :white_check_mark : | [ no-invalid-v-model] ( ./docs/rules/no-invalid-v-model.md ) | disallow invalid ` v-model ` directives. |
114
- | :white_check_mark : | [ no-invalid-v-on] ( ./docs/rules/no-invalid-v-on.md ) | disallow invalid ` v-on ` directives. |
115
- | :white_check_mark : | [ no-invalid-v-once] ( ./docs/rules/no-invalid-v-once.md ) | disallow invalid ` v-once ` directives. |
116
- | :white_check_mark : | [ no-invalid-v-pre] ( ./docs/rules/no-invalid-v-pre.md ) | disallow invalid ` v-pre ` directives. |
117
- | :white_check_mark : | [ no-invalid-v-show] ( ./docs/rules/no-invalid-v-show.md ) | disallow invalid ` v-show ` directives. |
118
- | :white_check_mark : | [ no-invalid-v-text] ( ./docs/rules/no-invalid-v-text.md ) | disallow invalid ` v-text ` directives. |
119
- | :white_check_mark : | [ no-parsing-error] ( ./docs/rules/no-parsing-error.md ) | disallow parsing errors in ` <template> ` . |
120
- | | [ no-reservered-keys] ( ./docs/rules/no-reservered-keys.md ) | Prevent overwrite reserved keys. |
121
- | | [ no-shared-component-data] ( ./docs/rules/no-shared-component-data.md ) | Enforces component's data property to be a function. |
122
- | | [ no-template-key] ( ./docs/rules/no-template-key.md ) | disallow ` key ` attribute on ` <template> ` . |
123
- | | [ require-render-return] ( ./docs/rules/require-render-return.md ) | Enforces render function to always return value. |
124
- | | [ return-in-computed-property] ( ./docs/rules/return-in-computed-property.md ) | Enforces that a return statement is present in computed property. |
150
+ | :white_check_mark : | [ jsx-uses-vars] ( ./docs/rules/jsx-uses-vars.md ) | Prevent variables used in JSX to be marked as unused |
151
+
152
+ ### Deprecated
153
+
154
+ > - :warning : We're going to remove deprecated rules in the next major release. Please migrate to successor/new rules.
155
+ > - :innocent : We don't fix bugs which are in deprecated rules since we don't have enough resources.
156
+
157
+ | Rule ID | Replaced by |
158
+ | :--------| :------------|
159
+ | [ html-no-self-closing] ( ./rules/html-no-self-closing.md ) | (no replacement) |
160
+ | [ no-invalid-template-root] ( ./rules/no-invalid-template-root.md ) | [ valid-template-root] ( ./rules/valid-template-root.md ) |
161
+ | [ no-invalid-v-bind] ( ./rules/no-invalid-v-bind.md ) | [ valid-v-bind] ( ./rules/valid-v-bind.md ) |
162
+ | [ no-invalid-v-cloak] ( ./rules/no-invalid-v-cloak.md ) | [ valid-v-cloak] ( ./rules/valid-v-cloak.md ) |
163
+ | [ no-invalid-v-else-if] ( ./rules/no-invalid-v-else-if.md ) | [ valid-v-else-if] ( ./rules/valid-v-else-if.md ) |
164
+ | [ no-invalid-v-else] ( ./rules/no-invalid-v-else.md ) | [ valid-v-else] ( ./rules/valid-v-else.md ) |
165
+ | [ no-invalid-v-for] ( ./rules/no-invalid-v-for.md ) | [ valid-v-for] ( ./rules/valid-v-for.md ) |
166
+ | [ no-invalid-v-html] ( ./rules/no-invalid-v-html.md ) | [ valid-v-html] ( ./rules/valid-v-html.md ) |
167
+ | [ no-invalid-v-if] ( ./rules/no-invalid-v-if.md ) | [ valid-v-if] ( ./rules/valid-v-if.md ) |
168
+ | [ no-invalid-v-model] ( ./rules/no-invalid-v-model.md ) | [ valid-v-model] ( ./rules/valid-v-model.md ) |
169
+ | [ no-invalid-v-on] ( ./rules/no-invalid-v-on.md ) | [ valid-v-on] ( ./rules/valid-v-on.md ) |
170
+ | [ no-invalid-v-once] ( ./rules/no-invalid-v-once.md ) | [ valid-v-once] ( ./rules/valid-v-once.md ) |
171
+ | [ no-invalid-v-pre] ( ./rules/no-invalid-v-pre.md ) | [ valid-v-pre] ( ./rules/valid-v-pre.md ) |
172
+ | [ no-invalid-v-show] ( ./rules/no-invalid-v-show.md ) | [ valid-v-show] ( ./rules/valid-v-show.md ) |
173
+ | [ no-invalid-v-text] ( ./rules/no-invalid-v-text.md ) | [ valid-v-text] ( ./rules/valid-v-text.md ) |
125
174
126
175
<!-- RULES_TABLE_END-->
127
176
0 commit comments