一、安装
npm install -g eslint 安装eslint
编辑器安装插件eslint(具体安装方法根据不同编辑器而不同)

二、使用
使用方法一:
eslint --init npm中用命令新建eslintrc.js文件
eslint yourfile.js npm中用命令检查自己文件中的错误

使用方法二:
手动在项目的根目录下新建eslintrc.*文件(.js、.json、.yaml、.yml等),进行配置(具体配置规则详见下文),即可在安装好eslint的编辑器中查看到出现错误的位置。

三、配置:http://eslint.org/docs/rules/ (以下规则文件配置一个即可,置于项目根目录下) (1).eslintrc文件中进行配置 http://eslint.org/docs/user-guide/configuring

{
    "rules": {
        "semi": ["error", "always"],
        "quotes": ["error", "double"]
    }
}
{
    "rules": {
        "semi": ["error", "always"],
        "quotes": ["error", "double"]
    }
}

四、其他
1.在样式之前标注“/* eslint-disable */”,可忽略配置的规则;标注“/* esint-enable */“,开启配置的规则
2.“/* eslint-enable */“必须在“/* eslint-disable */”之后使用
3.忽略指定的内容:新建一个.eslineignore文件,例如:
# /node_modules/* and /bower_components/* ignored by default
# Ignore built files except build/index.js
build/*
!build/index.js
通过命令 eslint --ignore-path .eslintignore file.js可检测是否被忽视
4.enlint 有很多的rules,为了改变rule的设置,可以设置rule ID等同于一些规则属性:如
"off" or 0 关闭规则
"warn" or 1 打开规则,出现警告提示
"error" or 2 打开规则,出现错误提示
规则可如下定义:

"rules": {
    "camel_case": 2
  }
"rules": {
    "camel_case": 2
  }

五、配置文件

{
    "rules": {
    "array-callback-return": "error",
    "indent": ["error", 4, {"SwitchCase": 1}],
    "block-spacing": "error",
    "brace-style": ["error", "1tbs"],
    "camelcase": ["error", { "properties": "never" }],
    "callback-return": ["error", ["cb", "callback", "next"]],
    "comma-spacing": "error",
    "comma-style": ["error", "last"],
    "consistent-return": "error",
    "curly": ["error", "all"],
    "default-case": "error",
    "dot-notation": ["error", { "allowKeywords": false }],
    "eol-last": "error",
    "eqeqeq": "error",
    "guard-for-in": "error",
    "key-spacing": ["error", { "beforeColon": false, "afterColon": true }],
    "keyword-spacing": "error",
    "lines-around-comment": ["error", {
        "beforeBlockComment": true,
        "afterBlockComment": false,
        "beforeLineComment": true,
        "afterLineComment": false
    }],
    "new-cap": "error",
    "newline-after-var": ["error", "never"],
    "new-parens": "error",
    "no-array-constructor": "error",
    "no-invalid-this": "error",
    "no-multi-spaces": "error",
    "no-redeclare": "error",
    "no-return-assign": "error",
    "no-spaced-func": "error",
    "no-trailing-spaces": "error",
    "semi": "error",
    "semi-spacing": "error",
    "quotes":["error","double"],
    "space-before-function-paren": ["error", "never"],
    "space-in-parens": "error",
    "space-infix-ops": "error",
    "space-unary-ops": ["error", {"words": true, "nonwords": false}],
    "spaced-comment": "error",
    "yoda": ["error", "never"],
    "no-mixed-requires": "error",
    "handle-callback-err": ["error", "err"]
  }
}
{
    "rules": {
    "array-callback-return": "error",
    "indent": ["error", 4, {"SwitchCase": 1}],
    "block-spacing": "error",
    "brace-style": ["error", "1tbs"],
    "camelcase": ["error", { "properties": "never" }],
    "callback-return": ["error", ["cb", "callback", "next"]],
    "comma-spacing": "error",
    "comma-style": ["error", "last"],
    "consistent-return": "error",
    "curly": ["error", "all"],
    "default-case": "error",
    "dot-notation": ["error", { "allowKeywords": false }],
    "eol-last": "error",
    "eqeqeq": "error",
    "guard-for-in": "error",
    "key-spacing": ["error", { "beforeColon": false, "afterColon": true }],
    "keyword-spacing": "error",
    "lines-around-comment": ["error", {
        "beforeBlockComment": true,
        "afterBlockComment": false,
        "beforeLineComment": true,
        "afterLineComment": false
    }],
    "new-cap": "error",
    "newline-after-var": ["error", "never"],
    "new-parens": "error",
    "no-array-constructor": "error",
    "no-invalid-this": "error",
    "no-multi-spaces": "error",
    "no-redeclare": "error",
    "no-return-assign": "error",
    "no-spaced-func": "error",
    "no-trailing-spaces": "error",
    "semi": "error",
    "semi-spacing": "error",
    "quotes":["error","double"],
    "space-before-function-paren": ["error", "never"],
    "space-in-parens": "error",
    "space-infix-ops": "error",
    "space-unary-ops": ["error", {"words": true, "nonwords": false}],
    "spaced-comment": "error",
    "yoda": ["error", "never"],
    "no-mixed-requires": "error",
    "handle-callback-err": ["error", "err"]
  }
}

六、配置文件说明

属性名

属性值

描述

array-callback-return

"error"

Array执行回调函数返回语句

indent

["error", 4, {"SwitchCase": 1}]

缩写格式的一致性

block-spacing

"error"

禁止执行空间内出现'-'

brace-style

["error","1tbs"]

代码书写格式验证

camelcase

["error", { "properties": "never" }]

属性命名规则可以不使用驼峰命名法

callback-return

["error", ["cb", "callback", "next"]]

回调函数需要return进行返回

comma-spacing

"error"

不允许在逗号前面出现空格

comma-style

["error", "last"]

方数组元素、变量声明等直接需要逗号隔开

consistent-return

"error"

保持return返回的一致性

curly

["error", "all"]

函数或者条件判断时需要统一使用大括号

default-case

"error"

switch语句中必须有default条件

dot-notation

["error", { "allowKeywords": false }]

不允许关键字出现在变量中

eol-last

"error"

代码间间隔出现一行

eqeqeq

"error"

消除不安全类型的全等操作

guard-for-in

"error"

for循环中过滤掉一下不被需要的行为

key-spacing

["error", { "beforeColon": false, "afterColon": true }]

键和值前保留一个空格

keyword-spacing

"error"

确保字符前后空格的一致性

lines-around-comment

["error", {

"beforeBlockComment": true,

"afterBlockComment": false,

"beforeLineComment": true,

"afterLineComment": false

}]

注释前需要空行,注释后不需要空行

new-cap

"error"

构造函数首字母需要大写

newline-after-var

["error", "never"]

var定义后不空行

new-parens

"error"

没有参数时,构造函数也需要添加括号

no-invalid-this

"error"

不允许关键字this在函数或者类的外面

no-multi-spaces

"error"

不允许键和值之间存在多个空格

no-redeclare

"error"

不允许重复声明

no-return-assign

"error"

不允许在return语句中任务

no-spaced-func

"error"

调用函数时,函数名和括号之间不能有空格。

no-trailing-spaces

"error"

不允许在语句后存在多余的空格

semi

"error"

语句以分号结尾

semi-spacing

"error"


分号前后不能有空格

quotes

["error","double"]

使用双引号

[space-before-function-paren](http://eslint.org/docs/rules/space-before-function-paren)

"space-before-function-paren": ["error", "never"]

不允许函数括号之间存在空格

space-in-parens

"error"

不允许在括号里面存在空格

space-infix-ops

"error"

插入符合变量之间需要添加一个空格

space-unary-ops

["error", {"words": true, "nonwords": false}]

允许一元运算符操作

spaced-comment

"error"

注释前需要一个空格

yoda

["error", "never"]

条件语句中,变量在赋值语句的前面

no-mixed-requires

"error"

不允许混合requires文件

no-new-require

"error"

不允许new require出现

no-path-concat

"error"

不允许路径以_链接

handle-callback-err

["error", "err"]

处理错误的回调函数