@@ -31,20 +31,48 @@ Create `.eslintrc.*` file to configure rules. See also: [http://eslint.org/docs/
3131
3232Example ** .eslintrc.js** :
3333
34- ``` javascript
34+ ``` js
3535module .exports = {
3636 extends: [
3737 ' eslint:recommended' ,
3838 ' plugin:vue/recommended' // or 'plugin:vue/base'
3939 ],
4040 rules: {
4141 // override/add rules' settings here
42- ' vue/no-invalid -v-if' : ' error'
42+ ' vue/valid -v-if' : ' error'
4343 }
4444}
4545```
4646
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
4876
4977This plugin provides two predefined configs:
5078- ` 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
5886
5987The ` --fix ` option on the command line automatically fixes problems reported by rules which have a wrench :wrench : below.
6088
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-
6389<!-- RULES_TABLE_START-->
6490
65- ### Stylistic Issues
91+ ### Possible Errors
6692
6793| | Rule ID | Description |
6894| :---| :--------| :------------|
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. |
74117
75118
76119### Best Practices
77120
78121| | Rule ID | Description |
79122| :---| :--------| :------------|
80123| :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) |
82124| | [ no-async-in-computed-properties] ( ./docs/rules/no-async-in-computed-properties.md ) | Check if there are no asynchronous actions inside computed properties. |
83125| :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. |
84126| | [ 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
90132| :white_check_mark : | [ require-v-for-key] ( ./docs/rules/require-v-for-key.md ) | require ` v-bind:key ` with ` v-for ` directives. |
91133
92134
93- ### Variables
135+ ### Stylistic Issues
94136
95137| | Rule ID | Description |
96138| :---| :--------| :------------|
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. |
98144
99145
100- ### Possible Errors
146+ ### Variables
101147
102148| | Rule ID | Description |
103149| :---| :--------| :------------|
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 ) |
125174
126175<!-- RULES_TABLE_END-->
127176
0 commit comments