eslint-config-alloy
Version:
AlloyTeam ESLint 规则
404 lines • 412 kB
JSON
{
"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\"><</span>template</span><span class=\"token punctuation\">></span></span>\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</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 &quot;v-for&quot; should go before &quot;ref&quot;.<br/><span class='eslint-error-rule-id'>eslint(vue/attributes-order)</span>\"><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 &quot;v-once&quot; should go before &quot;ref&quot;.<br/><span class='eslint-error-rule-id'>eslint(vue/attributes-order)</span>\">v-once</mark></span>\n <mark class=\"eslint-error\" data-tip=\"Attribute &quot;id&quot; should go before &quot;ref&quot;.<br/><span class='eslint-error-rule-id'>eslint(vue/attributes-order)</span>\"><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 &quot;v-if&quot; should go before &quot;my-prop&quot;.<br/><span class='eslint-error-rule-id'>eslint(vue/attributes-order)</span>\"><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 &quot;is&quot; should go before &quot;my-prop&quot;.<br/><span class='eslint-error-rule-id'>eslint(vue/attributes-order)</span>\"><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\"></</span>template</span><span class=\"token punctuation\">></span></span>",
"goodExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>template</span><span class=\"token punctuation\">></span></span>\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</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\"></</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\"><</span>template</span><span class=\"token punctuation\">></span></span>\n <span class=\"token comment\"><!-- eslint-disable-next-line vue/eqeqeq --></span>\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</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\"></</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\"><</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 &quot;foo-bar&quot; is not PascalCase.<br/><span class='eslint-error-rule-id'>eslint(vue/component-definition-name-casing)</span>\">'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\"></</span>script</span><span class=\"token punctuation\">></span></span>",
"goodExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</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\"></</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\"><</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\"></</span>style</span><span class=\"token punctuation\">></span></span>\n<mark class=\"eslint-error\" data-tip=\"&apos;&lt;script&gt;&apos; should be above &apos;&lt;style&gt;&apos; on line 1.<br/><span class='eslint-error-rule-id'>eslint(vue/component-tags-order)</span>\"><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</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\"></</span>script</span><span class=\"token punctuation\">></span></span></mark>\n<mark class=\"eslint-error\" data-tip=\"&apos;&lt;template&gt;&apos; should be above &apos;&lt;style&gt;&apos; on line 1.<br/><span class='eslint-error-rule-id'>eslint(vue/component-tags-order)</span>\"><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>template</span><span class=\"token punctuation\">></span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>template</span><span class=\"token punctuation\">></span></span></mark>",
"goodExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</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\"></</span>script</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>template</span><span class=\"token punctuation\">></span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>template</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</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\"></</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\"><</span>template</span><span class=\"token punctuation\">></span></span>\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</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 &apos;my-event&apos; must be camelCase.<br/><span class='eslint-error-rule-id'>eslint(vue/custom-event-name-casing)</span>\">'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\"></</span>template</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</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 &apos;my-event&apos; must be camelCase.<br/><span class='eslint-error-rule-id'>eslint(vue/custom-event-name-casing)</span>\">'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\"></</span>script</span><span class=\"token punctuation\">></span></span>",
"goodExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>template</span><span class=\"token punctuation\">></span></span>\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</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\"></</span>template</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</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\"></</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\"><</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 `&lt;script setup&gt;` (after any potential import statements or type definitions).<br/><span class='eslint-error-rule-id'>eslint(vue/define-macros-order)</span>\"><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\"></</span>script</span><span class=\"token punctuation\">></span></span>",
"goodExample": "<span class=\"token comment\"><!-- ✓ GOOD --></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</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\"></</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\"><</span>template</span><span class=\"token punctuation\">></span></span>\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</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 &apos;===&apos; and instead saw &apos;==&apos;.<br/><span class='eslint-error-rule-id'>eslint(vue/eqeqeq)</span>\">==</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\"></</span>template</span><span class=\"token punctuation\">></span></span>",
"goodExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>template</span><span class=\"token punctuation\">></span></span>\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</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\"></</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\"><</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.<br/><span class='eslint-error-rule-id'>eslint(vue/no-arrow-functions-in-watch)</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 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\"></</span>script</span><span class=\"token punctuation\">></span></span>",
"goodExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</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\"></</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\"><</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 &quot;foo&quot; computed property.<br/><span class='eslint-error-rule-id'>eslint(vue/no-async-in-computed-properties)</span>\"><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 &quot;foo&quot; computed property.<br/><span class='eslint-error-rule-id'>eslint(vue/no-async-in-computed-properties)</span>\"><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 &quot;bar&quot; computed property.<br/><span class='eslint-error-rule-id'>eslint(vue/no-async-in-computed-properties)</span>\"><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 &quot;baz&quot; computed property.<br/><span class='eslint-error-rule-id'>eslint(vue/no-async-in-computed-properties)</span>\"><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\"></</span>script</span><span class=\"token punctuation\">></span></span>",
"goodExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</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\"></</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\"><</span>template</span><span class=\"token punctuation\">></span></span>\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</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.<br/><span class='eslint-error-rule-id'>eslint(vue/no-child-content)</span>\">child content</mark><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>div</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>template</span><span class=\"token punctuation\">></span></span>",
"goodExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>template</span><span class=\"token punctuation\">></span></span>\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>div</span><span class=\"token punctuation\">></span></span>child content<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</span>div</span><span class=\"token punctuation\">></span></span>\n <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</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\"></</span>div</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"></</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\"><</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.<br/><span class='eslint-error-rule-id'>eslint(vue/no-computed-properties-in-data)</span>\"><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\"></</span>script</span><span class=\"token punctuation\">></span></span>",
"goodExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</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\"></</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\"><</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 &apos;data&apos; property is deprecated. Using function declaration instead.<br/><span class='eslint-error-rule-id'>eslint(vue/no-deprecated-data-object-declaration)</span>\">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\"></</span>script</span><span class=\"token punctuation\">></span></span>",
"goodExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</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\"></</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\"><</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.<br/><span class='eslint-error-rule-id'>eslint(vue/no-deprecated-destroyed-lifecycle)</span>\">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.<br/><span class='eslint-error-rule-id'>eslint(vue/no-deprecated-destroyed-lifecycle)</span>\">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\"></</span>script</span><span class=\"token punctuation\">></span></span>",
"goodExample": "<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\"><</span>script</span><span class=\"token punctuation\">></span></span><span class=\"token script\"><span class=\"token lan