liuwill/find-ip-location

View on GitHub
.eslintrc.yml

Summary

Maintainability
Test Coverage
---
  globals:
    describe: true
    it: true
    before: true
  env:
    browser: true
    node: true
  rules:
    #no-param-reassign: 0
    #semi: [2 never]
    indent: [error, 2]

    #官方文档 http:#eslint.org/docs/rules/
    # quotes: [0 single]                  #建议使用单引号
    # no-inner-declarations: [0 both]     #不建议在{}代码块内部声明变量或函数
    no-extra-boolean-cast: 1               #多余的感叹号转布尔型
    no-extra-semi: 1                       #多余的分号
    no-extra-parens: 1                     #多余的括号
    no-empty: 1                            #空代码块
    no-use-before-define:
      - 1
      - nofunc    #使用前未定义
    complexity:
      - 1
      - 10                    #圈复杂度大于10 警告

    #常见错误
    comma-dangle:
      - 2
      - never             #定义数组或对象最后多余的逗号
    no-debugger: 2                         #debugger 调试代码未删除
    no-constant-condition: 2               #常量作为条件
    no-dupe-args: 2                        #参数重复
    no-dupe-keys: 2                        #对象属性重复
    no-duplicate-case: 2                   #case重复
    no-empty-character-class: 2            #正则无法匹配任何值
    no-invalid-regexp: 2                   #无效的正则
    no-func-assign: 2                      #函数被赋值
    valid-typeof: 2                        #无效的类型判断
    no-unreachable: 2                      #不可能执行到的代码
    no-unexpected-multiline: 2             #行尾缺少分号可能导致一些意外情况
    no-sparse-arrays: 2                    #数组中多出逗号
    no-shadow-restricted-names: 2          #关键词与命名冲突
    no-undef: 2                            #变量未定义
    no-unused-vars: 1                      #变量定义后未使用
    no-cond-assign: 2                      #条件语句中禁止赋值操作
    no-native-reassign: 2                  #禁止覆盖原生对象

    #代码风格优化
    no-else-return: 1                      #在else代码块中return,else是多余的
    no-multi-spaces: 1                     #不允许多个空格
    key-spacing:
      - 1
      -
        beforeColon: false
        afterColon: true                    #object直接量建议写法 : 后一个空格前面不留空格
    block-scoped-var: 2                    #变量应在外部上下文中声明,不应在{}代码块中
    consistent-return: 1                   #函数返回值可能是不同类型
    accessor-pairs: 2                      #object getter/setter方法需要成对出现
    dot-location:
      - 2
      - property          #换行调用对象方法  点操作符应写在行首
    no-lone-blocks: 2                      #多余的{}嵌套
    no-labels: 2                      #无用的标记
    no-extend-native: 2                    #禁止扩展原生对象
    no-floating-decimal: 2                 #浮点型需要写全 禁止.1 或 2.写法
    no-loop-func: 2                        #禁止在循环体中定义函数
    no-new-func: 2                         #禁止new Function(...) 写法
    no-self-compare: 2                     #不允与自己比较作为条件
    no-sequences: 2                        #禁止可能导致结果不明确的逗号操作符
    no-throw-literal: 2                    #禁止抛出一个直接量 应是Error对象
    no-return-assign:
      - 2
      - always        #不允return时有赋值操作
    no-redeclare:
      - 2
      -
        builtinGlobals: true        #不允许重复声明
    no-unused-expressions:
      - 1
      -
        allowShortCircuit: true
        allowTernary: true                    #不执行的表达式
    no-useless-call: 0                     #无意义的函数call或apply
    no-useless-concat: 2                   #无意义的string concat
    no-void: 2                             #禁用void
    no-with: 2                             #禁用with
    no-mixed-spaces-and-tabs: 2            # 不允许空格和 tab 混合缩进
    #space-infix-ops: 2                     #操作符前后空格
    no-trailing-spaces: 2                  #  禁用行尾空格
    valid-jsdoc:
      - 2
      -
        requireParamDescription: true
        requireReturnDescription: true      #jsdoc
    no-warning-comments:
      - 2
      -
        terms:
          - todo
          - fixme
          - any other term
        location: anywhere             #标记未写注释
    curly: 1                                #if、else、while、for代码块用{}包围