vscode Eslint配置说明

rules: {
    //属性属性
        'vue/attributes-order': 1,
        "vue/order-in-components": ["error", {
            "order": [
            "el",
            "name",
            "parent",
            "functional",
            ["delimiters", "comments"],
            ["components", "directives", "filters"],
            "extends",
            "mixins",
            "inheritAttrs",
            "model",
            ["props", "propsData"],
            "data",
            "computed",
            "watch",
            "LIFECYCLE_HOOKS",
            "beforeCreate",
            "created",
            "mounted",
            "beforeDestroy",
            "destroyed",
            "methods",
            ["template", "render"],
            "renderError"
            ]
        }],
        // 关闭
        'eqeqeq': [0, 'allow-null'], // 要求使用 === 和 !==
        'prefer-const': 0, // 要求使用const声明那些声明后不再被修改的变量
        // 警告
        'consistent-this': [1, 'that'], //  获取当前执行环境的上下文时,强制使用一致的命名(此处强制使用 'that')。
        'no-debugger': 1, // 不使用 debugger
        'no-console': 1, // 不使用 console
        'no-alert': 1, // 不使用 alert
        'comma-dangle': [1, 'never'], // 禁止末尾逗号
        'eol-last': 1, // 要求文件末尾存在空行

        'vue/html-indent': [2, 4], // html 内 缩进
        'vue/no-multi-spaces': [2, { ignoreProperties: false }], // html 属性中不允许出现多个空格
        'vue/no-spaces-around-equal-signs-in-attribute': [2], // html 代码中 “=” 前后不能有空格
        'vue/prop-name-casing': [2], // 这条规则强制在vue组件(camelCase)中使用正确的支柱外壳。
        'vue/require-prop-types': 2, // 在 props 中至少要指定类型
        'vue/attribute-hyphenation': [2, 'always'], // 强制在Vue模板中的自定义组件上使用连字符属性名称
        'vue/html-closing-bracket-spacing': [2, { // 标签前后空格
            'startTag': 'never', // 标签最前面不允许出现空格
            'endTag': 'never', // 标签最后面不允许出现空格
            'selfClosingTag': 'always' // 自闭合标签 后必须有一个空格
        }],
        'vue/html-end-tags': [2], // 不允许缺少结束标记。
        'vue/html-quotes': [2, 'double'], // html 标签必须使用 双引号
        'vue/multiline-html-element-content-newline': [2, { // 内容 不允许出现断行
            'ignoreWhenEmpty': true,
            'allowEmptyLines': true
        }],
        'vue/mustache-interpolation-spacing': [2, 'always'], // 插值两端必须留一个空格
        'vue/v-bind-style': [2, 'shorthand'], // v-bind 指令必须使用缩写
        'vue/v-on-style': [2, 'shorthand'], // v-on 指令必须使用缩写
        // "vue/this-in-template": [2, "never"], // 标签内 不需要写this
        'vue/component-name-in-template-casing': [2, 'kebab-case', { // 强制 标签使用 中横线间隔
            'registeredComponentsOnly': false // 检查所有
        }],
        'vue/html-closing-bracket-newline': [2, {
            'singleline': 'never',
            'multiline': 'never'
        }],
        'semi': [2, 'always'], // 语句后面必须有 分号
        'no-label-var': 2, // 不允许标签与变量同名
        'no-undef': 2, // 禁止使用未声明的变量。
        'no-unused-vars': [1, { 'vars': 'all', 'args': 'after-used', 'ignoreRestSiblings': false }], // 禁止出现未使用的变量
        'no-undef-init': 2, // 禁止将变量初始化为undefined
        'use-isnan': 2, // 要求使用isNaN()检查NaN
        'no-floating-decimal': 2, // 禁止数字字面量中使用前导和末尾小数点
        'no-multi-str': 2, // 禁止使用多行字符串
        'no-sequences': 2, // 禁用逗号操作符
        'yoda': [2, 'never'], // 要求或禁止Yoda条件。 if("red" === color) { //字面量在前,变量在后 } 比较绝不能是Yoda条件(需要变量在前,字面量在后)
        'indent': [2, 4, { SwitchCase: 1 }], // 强制使用一致的缩进
        'no-mixed-spaces-and-tabs': 2, // 禁止空格和tab的混合缩进
        'no-multiple-empty-lines': [2, { max: 2 }], // 禁止出现多行空行 // 最大连续空行数
        'no-trailing-spaces': 2, // 禁止行尾空格
        'padded-blocks': [2, 'never'], // 函数内不允许开始结束有空行
        'no-sparse-arrays': 2, // 禁用稀疏数组
        /**
         * 强烈使用一致的反勾号``、双引号""或单引号''
         * 允许字符串使用单引号或者双引号,只要字符串中包含了一个其他引号,否则需要转义
         * 允许字符串使用反勾号
         */
        'quotes': [2, 'single', { avoidEscape: true, allowTemplateLiterals: true }],
        'curly': [2, 'all'], // 强制所有控制语句使用一致的括号风格, 不能省略大括号

        // 强制
        'no-dupe-keys': 2, // 禁止对象字面量中出现重复的key
        'no-duplicate-case': 2, // 禁止出现重复的case标签
        'no-ex-assign': 2, // 禁止对catch子句的参数重新赋值
        'no-unreachable': 2, // 禁止在return、throw、continue、break语句之后出现不可达代码
        'valid-typeof': 2, // 强制typeof表达式与有效的字符串进行比较
        'dot-location': [2, 'property'], // 强制在点号之前和之后一致的换行
        'no-empty-pattern': 2, // 禁止使用空解构模式
        'no-eval': 2, // 禁止eval()
        'no-implied-eval': 2, // 禁止使用类似eval()的方法
        'no-extend-native': 2, // 禁止扩展原生类型
        'no-fallthrough': 2, // 禁止case语句落空
        'no-lone-blocks': 2, // 禁用不必要嵌套块
        'no-new-wrappers': 2, // 禁止对String,Number 和 Boolean 使用new操作符
        'no-redeclare': 2, // 禁止多次声明同一变量
        'no-return-assign': [2, 'except-parens'], // 禁止在return语句中使用赋值语句
        'no-self-assign': 2, // 禁止自我赋值
        'no-self-compare': 2, // 禁止自我比较
        'no-unmodified-loop-condition': 2, // 禁止一成不变的循环条件
        'no-useless-escape': 2, // 禁止不必要的转义字符
        'no-class-assign': 2, // 禁止修改类声明的变量
        'no-const-assign': 2, // 禁止修改const声明的常量
        'no-dupe-class-members': 2, // 禁止类成员中出现重复的名称
        'no-useless-computed-key': 2, // 禁止在对象中使用不必要的计算属性
        'new-cap': [2, { newIsCap: true, capIsNew: false }], // 要求构造函数首字母大写
        'new-parens': 2, // 要求构造无参构造函数时有圆括号
        'no-whitespace-before-property': 2, // 禁止属性前有空白
        'no-cond-assign': 2, // 禁止条件表达式中出现赋值操作符
        'no-control-regex': 0, // 禁止在正则表达式中使用控制字符
        'no-empty-character-class': 2, // 禁止在正则表达式中使用空字符集
        'no-extra-boolean-cast': 2, // 禁止不必要的布尔转换
        'no-func-assign': 2, // 禁止对function声明重新赋值
        'no-inner-declarations': [2, 'functions'], // 禁止在嵌套块中出现变量声明或function声明
        'no-obj-calls': 2, // 禁止把全局对象作为函数调用
        'no-delete-var': 2, // 禁止删除变量
        'no-shadow-restricted-names': 2, // 禁止将标识符定义为受限的名字
        'no-dupe-args': 2, // 禁止function定义中出现重名参数
        'for-direction': 2, // 强制"for"循环中更新子句的计算器朝着正确的方向移动
        'no-unsafe-negation': 2, // 禁止对关系运算符的左操作数使用否定操作符
        'comma-style': [2, 'last'], // 强制在逗号前后使用一致的空格
        'operator-linebreak': [2, 'after', { overrides: { '?': 'before', ':': 'before' } }], // 强制操作符使用一致的换行符
        'no-unexpected-multiline': 2, // 禁止出现令人困惑的多行表达式 结尾必须有分号
        'no-multi-spaces': 2, // 禁止使用多个空格
        'no-extra-parens': [2, 'functions'], // 禁止不必要的括号
        'no-regex-spaces': 2, // 禁止正则表达式字面量中出现多个空格
        'brace-style': [2, '1tbs', { allowSingleLine: true }], // 强制在代码块中使用一致的大括号风格
        'arrow-spacing': [2, { before: true, after: true }], // "() => {};" // 强制箭头函数前后使用一致的空格
        'template-curly-spacing': [2, 'never'], // 禁止模板字符串中嵌入表达式周围空格的使用 "`hello, ${ people.name }!`;"
        'space-before-blocks': [2, 'always'], // 强制在块之前使用一致的空格 "function a() {}"
        'space-infix-ops': 2, // 要求操作符周围有空格 "a ? b : c"
        'space-unary-ops': [2, { words: true, nonwords: false }], // 强制在一元操作符前后使用一致的空格 "++foo;"
        'spaced-comment': [1, 'always', { markers: ['global', 'globals', 'eslint', 'eslint-disable', '*package', '!', ','] }], // 强制在注释// 或/*使用一致的空格
        'space-in-parens': [2, 'never'], // 强制在圆括号内使用一致的空格 "foo('bar');"
        'array-bracket-spacing': [2, 'never'], // 禁止或强制在括号内使用空格 "var arr = ['foo', 'bar', 'baz'];"
        'block-spacing': [2, 'always'], // 禁止或强制在代码块中开括号前和闭括号后有空格 "if (foo) { bar = 0; }"
        'key-spacing': [2, { beforeColon: false, afterColon: true }] // 强制要求在对象字面量的属性中键和值之间使用一致的间距 "var obj = { "foo": 42 };"
    }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值