esLint 规范总结 eslint配合prettier使用

esLInt规范总结

	//.eslintrc.js
	module.exports = {
    // 解析ES6
    'parser': 'babel-eslint',
    'parserOptions': {
        // 启用ES8语法支持
        'ecmaVersion': 2017,    
        // module表示ECMAScript模块
        'sourceType': 'module',
        // 使用额外的语言特性
        'ecmaFeatures': {
            'experimentalObjectRestSpread': true,
            'jsx': true,
            'modules': true,
        }
    },
    // 这些环境并不是互斥的,所以你可以同时定义多个
    'env': {
        'browser': true,
        'jquery': true,
        'node': true,
        'commonjs': true,
        'es6': true,
    },
    'root': true,
    // 当访问当前源文件内未定义的变量时,no-undef 规则将发出警告
    // 所以需要定义这些额外的全局变量
    'globals': {
        'OnlySVG': true,
        'monitor': true,
        'CanvasRender': true,
        'Vue': true,
        'VueRouter': true
    },
    'rules': {
        // 设置了 setter ,必须相应设置 getter ,反之不必须
        'accessor-pairs': 2,

        // 数组方括号前后的换行符使用规则
        // @off 不关心
        'array-bracket-newline': 0,

        // 数组方括号前后的空格使用规则
        // @off 不关心
        'array-bracket-spacing': 0,

        // 数组的 map、filter、sort 等方法,回调函数必须有返回值
        'array-callback-return': 2,

        // 每个数组项是否独占一行
        // @off 不关心
        'array-element-newline': 0,

        // 箭头函数的书写规则
        // @off 不限制
        'arrow-body-style': 0,

        // 箭头函数的圆括号使用规则
        // @off 不限制
        'arrow-parens': 0,

        // 箭头函数的空格使用规则
        // @off 不限制
        'arrow-spacing': 0,

        // 不能在块外使用块作用域内 var 定义的变量
        'block-scoped-var': 2,

        // 代码块花括号前后的空格规则
        // @off 不关心
        'block-spacing': 0,

        // if else 的花括号换行规则
        // @off 不关心
        'brace-style': 0,

        // callback 之后必须立即 return
        // @off 没必要
        'callback-return': 0,

        // 变量名必须使用驼峰式
        // @off 暂不限制
        'camelcase': 0,

        // 注释的首字母应该大写
        // @off 没必要
        'capitalized-comments': 0,

        // class 的非静态方法必须包含 this 关键字
        'class-methods-use-this': 2,

        // 对象的最后一项后面是否写逗号
        // @off 此项目不关心
        // @fixable 对于 PC 项目考虑兼容性时需要设置
        'comma-dangle': 0,

        // 逗号前后是否有空格
        // @off 不关心
        'comma-spacing': 0,

        // 逗号写在行首还是行尾
        // @off 不关心
        'comma-style': 0,

        // 禁止函数 if ... else if ... else 的复杂度超过 20
        'complexity': 2,

        // 使用方括号访问对象属性时,方括号前后的空格规则
        // @off 不关心
        'computed-property-spacing': 0,

        // 禁止函数在不同条件下返回不同类型的值
        // @off 有时候会希望通过参数获取不同类型的返回值
        'consistent-return': 0,

        // this 的别名规则,只允许 self 或 that
        'consistent-this': [2, 'self', 'that'],

        // 构造函数中必须调用 super
        // @off 没必要
        'constructor-super': 0,

        // if 后必须包含 { ,单行 if 除外
        'curly': [2, 'multi-line', 'consistent'],

        // switch 语句必须包含 default
        'default-case': 2,

        // 链式操作时,点的位置,是在上一行结尾还是下一行开头
        // @off 不关心
        'dot-location': 0,

        // 文件最后必须有空行
        // @off 不限制
        'eol-last': 0,

        // 必须使用 === 和 !== ,和 null 对比时除外
        'eqeqeq': [2, 'always', { 'null': 'ignore' }],

        // for 循环不得因方向错误造成死循环
        'for-direction': 2,

        // 执行函数的圆括号前后的空格规则
        // @off 不关心
        'func-call-spacing': 0,

        // 把函数赋给变量或对象属性时,函数名和变量名或对象属性名必须一致
        // @off 不限制
        'func-name-matching': 0,

        // 不允许匿名函数
        // @off 不限制
        'func-names': 0,

        // 必须只使用函数申明或只使用函数表达式
        // @off 不限制
        'func-style': 0,

        // generator 的 * 前后空格使用规则
        // @off 不限制
        'generator-star-spacing': 0,

        // getter 必须有返回值,允许返回 undefined
        'getter-return': [2, { allowImplicit: true }],

        // require 必须在全局作用域下
        // @off 条件加载很常见
        'global-require': 0,

        // for in 时需检测 hasOwnProperty
        'guard-for-in': 2,

        // callback 中的 err、error 参数和变量必须被处理
        'handle-callback-err': 2,

        // id 黑名单
        // @off 暂时没有
        'id-blacklist': 0,

        // 变量名长度限制
        // @off 长度不是重点,清晰易读才是关键
        'id-length': 0,

        // 限制变量名必须匹配指定的正则表达式
        // @off 没必要限制变量名
        'id-match': 0,

        // 缩进使用 tab 还是空格
        // @off 不关心
        'indent': 0,

        // 变量必须在定义的时候赋值
        // @off 先定义后赋值很常见
        'init-declarations': 0,

        // jsx 语法中,属性的值必须使用双引号
        'jsx-quotes': [2, 'prefer-double'],

        // 对象字面量冒号前后的空格使用规则
        // @off 不关心
        'key-spacing': 0,

        // 关键字前后必须有空格
        'keyword-spacing': 2,

        // 换行符使用规则
        // @off 不关心
        'linebreak-style': 0,

        // 单行注释必须写在前一行还是行尾
        // @off 不限制
        'line-comment-position
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值