UNPKG

eslint-config-alloy

Version:
404 lines 412 kB
{ "vue/array-element-newline": { "name": "vue/array-element-newline", "value": "off", "description": "在 `<template>` 中的每个数组元素后强制添加换行符", "reason": "", "badExample": "", "goodExample": "", "fixable": false, "extendsBaseRule": "array-element-newline", "requiresTypeChecking": false }, "vue/attribute-hyphenation": { "name": "vue/attribute-hyphenation", "value": "off", "description": "限制自定义组件的属性风格", "reason": "", "badExample": "", "goodExample": "", "fixable": true, "extendsBaseRule": "", "requiresTypeChecking": false }, "vue/attributes-order": { "name": "vue/attributes-order", "value": "error", "description": "标签属性必须按规则排序", "reason": "", "badExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>template</span><span class=\"token punctuation\">></span></span>\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span>\n <span class=\"token attr-name\">ref</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>header<span class=\"token punctuation\">\"</span></span>\n <mark class=\"eslint-error\" data-tip=\"Attribute &amp;quot;v-for&amp;quot; should go before &amp;quot;ref&amp;quot;.&lt;br/&gt;&lt;span class='eslint-error-rule-id'&gt;eslint(vue/attributes-order)&lt;/span&gt;\"><span class=\"token attr-name\">v-for</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>item in items<span class=\"token punctuation\">\"</span></span></mark>\n <span class=\"token attr-name\"><mark class=\"eslint-error\" data-tip=\"Attribute &amp;quot;v-once&amp;quot; should go before &amp;quot;ref&amp;quot;.&lt;br/&gt;&lt;span class='eslint-error-rule-id'&gt;eslint(vue/attributes-order)&lt;/span&gt;\">v-once</mark></span>\n <mark class=\"eslint-error\" data-tip=\"Attribute &amp;quot;id&amp;quot; should go before &amp;quot;ref&amp;quot;.&lt;br/&gt;&lt;span class='eslint-error-rule-id'&gt;eslint(vue/attributes-order)&lt;/span&gt;\"><span class=\"token attr-name\">id</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>uniqueID<span class=\"token punctuation\">\"</span></span></mark>\n <span class=\"token attr-name\">v-model</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>headerData<span class=\"token punctuation\">\"</span></span>\n <span class=\"token attr-name\">my-prop</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>prop<span class=\"token punctuation\">\"</span></span>\n <mark class=\"eslint-error\" data-tip=\"Attribute &amp;quot;v-if&amp;quot; should go before &amp;quot;my-prop&amp;quot;.&lt;br/&gt;&lt;span class='eslint-error-rule-id'&gt;eslint(vue/attributes-order)&lt;/span&gt;\"><span class=\"token attr-name\">v-if</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>!visible<span class=\"token punctuation\">\"</span></span></mark>\n <mark class=\"eslint-error\" data-tip=\"Attribute &amp;quot;is&amp;quot; should go before &amp;quot;my-prop&amp;quot;.&lt;br/&gt;&lt;span class='eslint-error-rule-id'&gt;eslint(vue/attributes-order)&lt;/span&gt;\"><span class=\"token attr-name\">is</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>header<span class=\"token punctuation\">\"</span></span></mark>\n <span class=\"token attr-name\">@click</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>functionCall<span class=\"token punctuation\">\"</span></span>\n <span class=\"token attr-name\">v-text</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>textContent<span class=\"token punctuation\">\"</span></span>\n <span class=\"token punctuation\">/></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>template</span><span class=\"token punctuation\">></span></span>", "goodExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>template</span><span class=\"token punctuation\">></span></span>\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span>\n <span class=\"token attr-name\">is</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>header<span class=\"token punctuation\">\"</span></span>\n <span class=\"token attr-name\">v-for</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>item in items<span class=\"token punctuation\">\"</span></span>\n <span class=\"token attr-name\">v-if</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>!visible<span class=\"token punctuation\">\"</span></span>\n <span class=\"token attr-name\">v-once</span>\n <span class=\"token attr-name\">id</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>uniqueID<span class=\"token punctuation\">\"</span></span>\n <span class=\"token attr-name\">ref</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>header<span class=\"token punctuation\">\"</span></span>\n <span class=\"token attr-name\">v-model</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>headerData<span class=\"token punctuation\">\"</span></span>\n <span class=\"token attr-name\">my-prop</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>prop<span class=\"token punctuation\">\"</span></span>\n <span class=\"token attr-name\">@click</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>functionCall<span class=\"token punctuation\">\"</span></span>\n <span class=\"token attr-name\">v-text</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>textContent<span class=\"token punctuation\">\"</span></span>\n <span class=\"token punctuation\">/></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>template</span><span class=\"token punctuation\">></span></span>", "fixable": true, "extendsBaseRule": "", "requiresTypeChecking": false }, "vue/block-lang": { "name": "vue/block-lang", "value": "off", "description": "<script> 标签必须有 lang 属性", "reason": "", "badExample": "", "goodExample": "", "fixable": false, "extendsBaseRule": "", "requiresTypeChecking": false }, "vue/camelcase": { "name": "vue/camelcase", "value": "off", "description": "变量名必须是 camelCase 风格的", "reason": "很多 api 或文件名都不是 camelCase 风格的", "badExample": "", "goodExample": "", "fixable": false, "extendsBaseRule": "camelcase", "requiresTypeChecking": false }, "vue/comment-directive": { "name": "vue/comment-directive", "value": "error", "description": "支持在模版中使用 eslint-disable-next-line 等注释", "reason": "", "badExample": "", "goodExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>template</span><span class=\"token punctuation\">></span></span>\n <span class=\"token comment\">&lt;!-- eslint-disable-next-line vue/eqeqeq --></span>\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span> <span class=\"token attr-name\">:attr</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>foo == 1<span class=\"token punctuation\">\"</span></span> <span class=\"token punctuation\">/></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>template</span><span class=\"token punctuation\">></span></span>", "fixable": false, "extendsBaseRule": "", "requiresTypeChecking": false }, "vue/component-api-style": { "name": "vue/component-api-style", "value": "off", "description": "限制组件接口定义的模式", "reason": "", "badExample": "", "goodExample": "", "fixable": false, "extendsBaseRule": "", "requiresTypeChecking": false }, "vue/component-definition-name-casing": { "name": "vue/component-definition-name-casing", "value": ["error", "PascalCase"], "description": "组件的 name 属性必须符合 PascalCase", "reason": "这是官方建议的规范", "badExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>script</span><span class=\"token punctuation\">></span></span><span class=\"token script\"><span class=\"token language-javascript\">\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">default</span> <span class=\"token punctuation\">{</span>\n name<span class=\"token punctuation\">:</span> <span class=\"token string\"><mark class=\"eslint-error\" data-tip=\"Property name &amp;quot;foo-bar&amp;quot; is not PascalCase.&lt;br/&gt;&lt;span class='eslint-error-rule-id'&gt;eslint(vue/component-definition-name-casing)&lt;/span&gt;\">'foo-bar'</mark></span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n</span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>script</span><span class=\"token punctuation\">></span></span>", "goodExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>script</span><span class=\"token punctuation\">></span></span><span class=\"token script\"><span class=\"token language-javascript\">\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">default</span> <span class=\"token punctuation\">{</span>\n name<span class=\"token punctuation\">:</span> <span class=\"token string\">'FooBar'</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n</span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>script</span><span class=\"token punctuation\">></span></span>", "fixable": true, "extendsBaseRule": "", "requiresTypeChecking": false }, "vue/component-name-in-template-casing": { "name": "vue/component-name-in-template-casing", "value": "off", "description": "限制组件名的风格", "reason": "", "badExample": "", "goodExample": "", "fixable": true, "extendsBaseRule": "", "requiresTypeChecking": false }, "vue/component-options-name-casing": { "name": "vue/component-options-name-casing", "value": "off", "description": "限制组件名称的命名规范", "reason": "", "badExample": "", "goodExample": "", "fixable": true, "extendsBaseRule": "", "requiresTypeChecking": false }, "vue/component-tags-order": { "name": "vue/component-tags-order", "value": ["error", { "order": [["script", "template"], "style"] }], "description": "组件中必须按照 <script>, <template>, <style> 排序", "reason": "这是官方建议的顺序", "badExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>style</span><span class=\"token punctuation\">></span></span><span class=\"token style\"></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>style</span><span class=\"token punctuation\">></span></span>\n<mark class=\"eslint-error\" data-tip=\"&amp;apos;&amp;lt;script&amp;gt;&amp;apos; should be above &amp;apos;&amp;lt;style&amp;gt;&amp;apos; on line 1.&lt;br/&gt;&lt;span class='eslint-error-rule-id'&gt;eslint(vue/component-tags-order)&lt;/span&gt;\"><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>script</span><span class=\"token punctuation\">></span></span><span class=\"token script\"></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>script</span><span class=\"token punctuation\">></span></span></mark>\n<mark class=\"eslint-error\" data-tip=\"&amp;apos;&amp;lt;template&amp;gt;&amp;apos; should be above &amp;apos;&amp;lt;style&amp;gt;&amp;apos; on line 1.&lt;br/&gt;&lt;span class='eslint-error-rule-id'&gt;eslint(vue/component-tags-order)&lt;/span&gt;\"><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>template</span><span class=\"token punctuation\">></span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>template</span><span class=\"token punctuation\">></span></span></mark>", "goodExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>script</span><span class=\"token punctuation\">></span></span><span class=\"token script\"></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>script</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>template</span><span class=\"token punctuation\">></span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>template</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>style</span><span class=\"token punctuation\">></span></span><span class=\"token style\"></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>style</span><span class=\"token punctuation\">></span></span>", "fixable": true, "extendsBaseRule": "", "requiresTypeChecking": false }, "vue/custom-event-name-casing": { "name": "vue/custom-event-name-casing", "value": "error", "description": "自定义事件名必须用 camelCase 风格", "reason": "", "badExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>template</span><span class=\"token punctuation\">></span></span>\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>button</span> <span class=\"token attr-name\">@click</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>$emit(<mark class=\"eslint-error\" data-tip=\"Custom event name &amp;apos;my-event&amp;apos; must be camelCase.&lt;br/&gt;&lt;span class='eslint-error-rule-id'&gt;eslint(vue/custom-event-name-casing)&lt;/span&gt;\">'my-event'</mark>)<span class=\"token punctuation\">\"</span></span> <span class=\"token punctuation\">/></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>template</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>script</span><span class=\"token punctuation\">></span></span><span class=\"token script\"><span class=\"token language-javascript\">\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">default</span> <span class=\"token punctuation\">{</span>\n methods<span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span>\n <span class=\"token function\">onClick</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n <span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span><span class=\"token function\">$emit</span><span class=\"token punctuation\">(</span><span class=\"token string\"><mark class=\"eslint-error\" data-tip=\"Custom event name &amp;apos;my-event&amp;apos; must be camelCase.&lt;br/&gt;&lt;span class='eslint-error-rule-id'&gt;eslint(vue/custom-event-name-casing)&lt;/span&gt;\">'my-event'</mark></span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n</span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>script</span><span class=\"token punctuation\">></span></span>", "goodExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>template</span><span class=\"token punctuation\">></span></span>\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>button</span> <span class=\"token attr-name\">@click</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>$emit('myEvent')<span class=\"token punctuation\">\"</span></span> <span class=\"token punctuation\">/></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>template</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>script</span><span class=\"token punctuation\">></span></span><span class=\"token script\"><span class=\"token language-javascript\">\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">default</span> <span class=\"token punctuation\">{</span>\n methods<span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span>\n <span class=\"token function\">onClick</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n <span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span><span class=\"token function\">$emit</span><span class=\"token punctuation\">(</span><span class=\"token string\">'myEvent'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n <span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span><span class=\"token function\">$emit</span><span class=\"token punctuation\">(</span><span class=\"token string\">'update:myProp'</span><span class=\"token punctuation\">,</span> myProp<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n</span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>script</span><span class=\"token punctuation\">></span></span>", "fixable": false, "extendsBaseRule": "", "requiresTypeChecking": false }, "vue/define-emits-declaration": { "name": "vue/define-emits-declaration", "value": "off", "description": "约束 defineEmits 定义 emit 的格式", "reason": "", "badExample": "", "goodExample": "", "fixable": false, "extendsBaseRule": "", "requiresTypeChecking": false }, "vue/define-macros-order": { "name": "vue/define-macros-order", "value": "error", "description": "必须按规则排序 defineEmits 和 defineProps", "reason": "", "badExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>script</span> <span class=\"token attr-name\">setup</span><span class=\"token punctuation\">></span></span><span class=\"token script\"><span class=\"token language-javascript\">\n<span class=\"token function\">defineEmits</span><span class=\"token punctuation\">(</span><span class=\"token comment\">/* ... */</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<mark class=\"eslint-error\" data-tip=\"defineProps should be the first statement in `&amp;lt;script setup&amp;gt;` (after any potential import statements or type definitions).&lt;br/&gt;&lt;span class='eslint-error-rule-id'&gt;eslint(vue/define-macros-order)&lt;/span&gt;\"><span class=\"token function\">defineProps</span><span class=\"token punctuation\">(</span><span class=\"token comment\">/* ... */</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></mark>\n</span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>script</span><span class=\"token punctuation\">></span></span>", "goodExample": "<span class=\"token comment\">&lt;!-- ✓ GOOD --></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>script</span> <span class=\"token attr-name\">setup</span><span class=\"token punctuation\">></span></span><span class=\"token script\"><span class=\"token language-javascript\">\n<span class=\"token function\">defineProps</span><span class=\"token punctuation\">(</span><span class=\"token comment\">/* ... */</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token function\">defineEmits</span><span class=\"token punctuation\">(</span><span class=\"token comment\">/* ... */</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n</span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>script</span><span class=\"token punctuation\">></span></span>", "fixable": true, "extendsBaseRule": "", "requiresTypeChecking": false }, "vue/define-props-declaration": { "name": "vue/define-props-declaration", "value": "off", "description": "约束 defineProps 定义 props 的格式", "reason": "", "badExample": "", "goodExample": "", "fixable": false, "extendsBaseRule": "", "requiresTypeChecking": false }, "vue/dot-notation": { "name": "vue/dot-notation", "value": "off", "description": "禁止使用 foo['bar'],必须写成 foo.bar", "reason": "当需要写一系列属性的时候,可以更统一", "badExample": "", "goodExample": "", "fixable": true, "extendsBaseRule": "dot-notation", "requiresTypeChecking": false }, "vue/eqeqeq": { "name": "vue/eqeqeq", "value": ["error", "always"], "description": "必须使用 === 或 !==,禁止使用 == 或 !=", "reason": "", "badExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>template</span><span class=\"token punctuation\">></span></span>\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span> <span class=\"token attr-name\">:attr</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>foo <mark class=\"eslint-error\" data-tip=\"Expected &amp;apos;===&amp;apos; and instead saw &amp;apos;==&amp;apos;.&lt;br/&gt;&lt;span class='eslint-error-rule-id'&gt;eslint(vue/eqeqeq)&lt;/span&gt;\">==</mark> 1<span class=\"token punctuation\">\"</span></span> <span class=\"token punctuation\">/></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>template</span><span class=\"token punctuation\">></span></span>", "goodExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>template</span><span class=\"token punctuation\">></span></span>\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span> <span class=\"token attr-name\">:attr</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>foo === 1<span class=\"token punctuation\">\"</span></span> <span class=\"token punctuation\">/></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>template</span><span class=\"token punctuation\">></span></span>", "fixable": true, "extendsBaseRule": "eqeqeq", "requiresTypeChecking": false }, "vue/first-attribute-linebreak": { "name": "vue/first-attribute-linebreak", "value": "off", "description": "标签的第一个属性必须换行", "reason": "代码格式问题,最好由 Prettier 解决", "badExample": "", "goodExample": "", "fixable": false, "extendsBaseRule": "", "requiresTypeChecking": false }, "vue/html-button-has-type": { "name": "vue/html-button-has-type", "value": "off", "description": "button 标签必须有 type 属性", "reason": "", "badExample": "", "goodExample": "", "fixable": false, "extendsBaseRule": "", "requiresTypeChecking": false }, "vue/html-comment-content-newline": { "name": "vue/html-comment-content-newline", "value": "off", "description": "HTML 注释的 <!-- 后必须有空格或换行符", "reason": "代码格式问题,最好由 Prettier 解决", "badExample": "", "goodExample": "", "fixable": false, "extendsBaseRule": "", "requiresTypeChecking": false }, "vue/html-comment-content-spacing": { "name": "vue/html-comment-content-spacing", "value": "off", "description": "HTML 注释必须有首位空格", "reason": "代码格式问题,最好由 Prettier 解决", "badExample": "", "goodExample": "", "fixable": false, "extendsBaseRule": "", "requiresTypeChecking": false }, "vue/html-comment-indent": { "name": "vue/html-comment-indent", "value": "off", "description": "HTML 注释缩进必须有两个空格", "reason": "代码格式问题,最好由 Prettier 解决", "badExample": "", "goodExample": "", "fixable": false, "extendsBaseRule": "", "requiresTypeChecking": false }, "vue/jsx-uses-vars": { "name": "vue/jsx-uses-vars", "value": "error", "description": "修复 no-unused-vars 不检查 jsx 的问题", "reason": "", "badExample": "", "goodExample": "", "fixable": false, "extendsBaseRule": "", "requiresTypeChecking": false }, "vue/match-component-file-name": { "name": "vue/match-component-file-name", "value": "off", "description": "组件名称必须和文件名一致", "reason": "", "badExample": "", "goodExample": "", "fixable": false, "extendsBaseRule": "", "requiresTypeChecking": false }, "vue/match-component-import-name": { "name": "vue/match-component-import-name", "value": "off", "description": "导出的组件名称必须保持一致性", "reason": "", "badExample": "", "goodExample": "", "fixable": false, "extendsBaseRule": "", "requiresTypeChecking": false }, "vue/multi-word-component-names": { "name": "vue/multi-word-component-names", "value": "off", "description": "组件名称必须是两个以上的单词", "reason": "", "badExample": "", "goodExample": "", "fixable": false, "extendsBaseRule": "", "requiresTypeChecking": false }, "vue/new-line-between-multi-line-property": { "name": "vue/new-line-between-multi-line-property", "value": "off", "description": "多行属性之间必须有空行", "reason": "代码格式问题,最好由 Prettier 解决", "badExample": "", "goodExample": "", "fixable": false, "extendsBaseRule": "", "requiresTypeChecking": false }, "vue/next-tick-style": { "name": "vue/next-tick-style", "value": "off", "description": "nextTick 必须使用 Promise 模式调用", "reason": "", "badExample": "", "goodExample": "", "fixable": true, "extendsBaseRule": "", "requiresTypeChecking": false }, "vue/no-arrow-functions-in-watch": { "name": "vue/no-arrow-functions-in-watch", "value": "error", "description": "watch 中禁止使用箭头函数", "reason": "", "badExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>script</span><span class=\"token punctuation\">></span></span><span class=\"token script\"><span class=\"token language-javascript\">\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">default</span> <span class=\"token punctuation\">{</span>\n watch<span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span>\n <span class=\"token function-variable function\">foo</span><span class=\"token punctuation\">:</span> <mark class=\"eslint-error\" data-tip=\"You should not use an arrow function to define a watcher.&lt;br/&gt;&lt;span class='eslint-error-rule-id'&gt;eslint(vue/no-arrow-functions-in-watch)&lt;/span&gt;\"><span class=\"token punctuation\">(</span><span class=\"token parameter\">val<span class=\"token punctuation\">,</span> oldVal</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><span class=\"token string\">'new: %s, old: %s'</span><span class=\"token punctuation\">,</span> val<span class=\"token punctuation\">,</span> oldVal<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n <span class=\"token punctuation\">}</span></mark><span class=\"token punctuation\">,</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n</span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>script</span><span class=\"token punctuation\">></span></span>", "goodExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>script</span><span class=\"token punctuation\">></span></span><span class=\"token script\"><span class=\"token language-javascript\">\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">default</span> <span class=\"token punctuation\">{</span>\n watch<span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span>\n <span class=\"token function-variable function\">a</span><span class=\"token punctuation\">:</span> <span class=\"token keyword\">function</span> <span class=\"token punctuation\">(</span><span class=\"token parameter\">val<span class=\"token punctuation\">,</span> oldVal</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><span class=\"token string\">'new: %s, old: %s'</span><span class=\"token punctuation\">,</span> val<span class=\"token punctuation\">,</span> oldVal<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n b<span class=\"token punctuation\">:</span> <span class=\"token string\">'someMethod'</span><span class=\"token punctuation\">,</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n</span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>script</span><span class=\"token punctuation\">></span></span>", "fixable": false, "extendsBaseRule": "", "requiresTypeChecking": false }, "vue/no-async-in-computed-properties": { "name": "vue/no-async-in-computed-properties", "value": "error", "description": "计算属性禁止包含异步方法", "reason": "", "badExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>script</span><span class=\"token punctuation\">></span></span><span class=\"token script\"><span class=\"token language-javascript\">\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">default</span> <span class=\"token punctuation\">{</span>\n computed<span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span>\n <span class=\"token function-variable function\">foo</span><span class=\"token punctuation\">:</span> <mark class=\"eslint-error\" data-tip=\"Unexpected async function declaration in &amp;quot;foo&amp;quot; computed property.&lt;br/&gt;&lt;span class='eslint-error-rule-id'&gt;eslint(vue/no-async-in-computed-properties)&lt;/span&gt;\"><span class=\"token keyword\">async</span> <span class=\"token keyword\">function</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n <span class=\"token keyword\">return</span> <mark class=\"eslint-error\" data-tip=\"Unexpected await operator in &amp;quot;foo&amp;quot; computed property.&lt;br/&gt;&lt;span class='eslint-error-rule-id'&gt;eslint(vue/no-async-in-computed-properties)&lt;/span&gt;\"><span class=\"token keyword\">await</span> <span class=\"token function\">someFunc</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span></mark><span class=\"token punctuation\">;</span>\n <span class=\"token punctuation\">}</span></mark><span class=\"token punctuation\">,</span>\n <span class=\"token function\">bar</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n <span class=\"token keyword\">return</span> <mark class=\"eslint-error\" data-tip=\"Unexpected Promise object in &amp;quot;bar&amp;quot; computed property.&lt;br/&gt;&lt;span class='eslint-error-rule-id'&gt;eslint(vue/no-async-in-computed-properties)&lt;/span&gt;\"><span class=\"token keyword\">new</span> <span class=\"token class-name\">Promise</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span></mark><span class=\"token punctuation\">;</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n <span class=\"token function\">baz</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n <mark class=\"eslint-error\" data-tip=\"Unexpected timed function in &amp;quot;baz&amp;quot; computed property.&lt;br/&gt;&lt;span class='eslint-error-rule-id'&gt;eslint(vue/no-async-in-computed-properties)&lt;/span&gt;\"><span class=\"token function\">setTimeout</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span></mark><span class=\"token punctuation\">;</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n</span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>script</span><span class=\"token punctuation\">></span></span>", "goodExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>script</span><span class=\"token punctuation\">></span></span><span class=\"token script\"><span class=\"token language-javascript\">\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">default</span> <span class=\"token punctuation\">{</span>\n computed<span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span>\n <span class=\"token function\">foo</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n <span class=\"token keyword\">return</span> <span class=\"token function\">someFunc</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n</span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>script</span><span class=\"token punctuation\">></span></span>", "fixable": false, "extendsBaseRule": "", "requiresTypeChecking": false }, "vue/no-bare-strings-in-template": { "name": "vue/no-bare-strings-in-template", "value": "off", "description": "禁止 <template> 中使用字符串", "reason": "", "badExample": "", "goodExample": "", "fixable": false, "extendsBaseRule": "", "requiresTypeChecking": false }, "vue/no-boolean-default": { "name": "vue/no-boolean-default", "value": "off", "description": "禁止给布尔值 props 添加默认值", "reason": "类型相关的约束交给 TypeScript", "badExample": "", "goodExample": "", "fixable": true, "extendsBaseRule": "", "requiresTypeChecking": false }, "vue/no-child-content": { "name": "vue/no-child-content", "value": "error", "description": "禁止有 v-html 或 v-text 属性的标签内部还有内容", "reason": "", "badExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>template</span><span class=\"token punctuation\">></span></span>\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span> <span class=\"token attr-name\">v-html</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>replacesChildContent<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span><mark class=\"eslint-error\" data-tip=\"Child content is disallowed because it will be overwritten by the v-html directive.&lt;br/&gt;&lt;span class='eslint-error-rule-id'&gt;eslint(vue/no-child-content)&lt;/span&gt;\">child content</mark><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>template</span><span class=\"token punctuation\">></span></span>", "goodExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>template</span><span class=\"token punctuation\">></span></span>\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span><span class=\"token punctuation\">></span></span>child content<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span>\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span> <span class=\"token attr-name\">v-html</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>replacesChildContent<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>template</span><span class=\"token punctuation\">></span></span>", "fixable": false, "extendsBaseRule": "", "requiresTypeChecking": false }, "vue/no-computed-properties-in-data": { "name": "vue/no-computed-properties-in-data", "value": "error", "description": "禁止 data() 中有计算属性", "reason": "", "badExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>script</span><span class=\"token punctuation\">></span></span><span class=\"token script\"><span class=\"token language-javascript\">\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">default</span> <span class=\"token punctuation\">{</span>\n <span class=\"token function\">data</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n <span class=\"token keyword\">return</span> <span class=\"token punctuation\">{</span>\n bar<span class=\"token punctuation\">:</span> <mark class=\"eslint-error\" data-tip=\"The computed property cannot be used in `data()` because it is before initialization.&lt;br/&gt;&lt;span class='eslint-error-rule-id'&gt;eslint(vue/no-computed-properties-in-data)&lt;/span&gt;\"><span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>foo</mark><span class=\"token punctuation\">,</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n computed<span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span>\n <span class=\"token function\">foo</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n</span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>script</span><span class=\"token punctuation\">></span></span>", "goodExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>script</span><span class=\"token punctuation\">></span></span><span class=\"token script\"><span class=\"token language-javascript\">\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">default</span> <span class=\"token punctuation\">{</span>\n <span class=\"token function\">data</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n <span class=\"token keyword\">return</span> <span class=\"token punctuation\">{</span>\n bar<span class=\"token punctuation\">:</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n computed<span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span>\n <span class=\"token function\">foo</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n</span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>script</span><span class=\"token punctuation\">></span></span>", "fixable": false, "extendsBaseRule": "", "requiresTypeChecking": false }, "vue/no-constant-condition": { "name": "vue/no-constant-condition", "value": "off", "description": "禁止将常量作为分支条件判断中的测试表达式,但允许作为循环条件判断中的测试表达式", "reason": "", "badExample": "", "goodExample": "", "fixable": false, "extendsBaseRule": "no-constant-condition", "requiresTypeChecking": false }, "vue/no-deprecated-data-object-declaration": { "name": "vue/no-deprecated-data-object-declaration", "value": "error", "description": "禁止在 data 中使用已废弃的对象定义", "reason": "", "badExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>script</span><span class=\"token punctuation\">></span></span><span class=\"token script\"><span class=\"token language-javascript\">\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">default</span> <span class=\"token punctuation\">{</span>\n <mark class=\"eslint-error\" data-tip=\"Object declaration on &amp;apos;data&amp;apos; property is deprecated. Using function declaration instead.&lt;br/&gt;&lt;span class='eslint-error-rule-id'&gt;eslint(vue/no-deprecated-data-object-declaration)&lt;/span&gt;\">data<span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span>\n foo<span class=\"token punctuation\">:</span> <span class=\"token keyword\">null</span><span class=\"token punctuation\">,</span>\n <span class=\"token punctuation\">}</span></mark><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n</span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>script</span><span class=\"token punctuation\">></span></span>", "goodExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>script</span><span class=\"token punctuation\">></span></span><span class=\"token script\"><span class=\"token language-javascript\">\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">default</span> <span class=\"token punctuation\">{</span>\n <span class=\"token function\">data</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n <span class=\"token keyword\">return</span> <span class=\"token punctuation\">{</span>\n foo<span class=\"token punctuation\">:</span> <span class=\"token keyword\">null</span><span class=\"token punctuation\">,</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n</span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>script</span><span class=\"token punctuation\">></span></span>", "fixable": true, "extendsBaseRule": "", "requiresTypeChecking": false }, "vue/no-deprecated-destroyed-lifecycle": { "name": "vue/no-deprecated-destroyed-lifecycle", "value": "error", "description": "禁止使用已废弃的 destroyed 和 beforeDestroy 生命周期", "reason": "", "badExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>script</span><span class=\"token punctuation\">></span></span><span class=\"token script\"><span class=\"token language-javascript\">\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">default</span> <span class=\"token punctuation\">{</span>\n <span class=\"token function\"><mark class=\"eslint-error\" data-tip=\"The `beforeDestroy` lifecycle hook is deprecated. Use `beforeUnmount` instead.&lt;br/&gt;&lt;span class='eslint-error-rule-id'&gt;eslint(vue/no-deprecated-destroyed-lifecycle)&lt;/span&gt;\">beforeDestroy</mark></span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n <span class=\"token function\"><mark class=\"eslint-error\" data-tip=\"The `destroyed` lifecycle hook is deprecated. Use `unmounted` instead.&lt;br/&gt;&lt;span class='eslint-error-rule-id'&gt;eslint(vue/no-deprecated-destroyed-lifecycle)&lt;/span&gt;\">destroyed</mark></span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n</span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>script</span><span class=\"token punctuation\">></span></span>", "goodExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>script</span><span class=\"token punctuation\">></span></span><span class=\"token script\"><span class=\"token lan