Lint
是啥?Lint
是针对C语言源码的检测工具,它的功能就是看看源码有没有编写错误,有没有风格问题。前端
啥是编写错误呢?程序员
编写错误就意味着上考场没带准考证,别说考的好很差,根本没机会考。编程
编写错误意味着你的代码根本通不过编译。工具
啥是风格问题呢?编码
风格问题能够比喻为上考场穿着三角裤衩,虽然本身考的挺嗨,可是影响别人发挥(光看你的内裤啥颜色了)。插件
好了,既然C语言有这样的工具,那么咱们JS语言有没有这样的工具呢?code
答案是确定的,按照时间顺序,JS语言界依次出现四位大咖:JSLint
,JSHint
,JSCS
,ESLint
。继承
JSLint
做为开山鼻祖,它不只能够检测代码编写错误,还能够检测代码风格问题。开发
可是它的断定规则彻底按照JSLint
的做者经验来制定,不容许改变,大有信我者昌,逆我者亡的气势。编译器
这样作,在检查代码编写错误时是没问题的,可是检查代码风格时候就有点尴尬,
好比有的公司就喜欢让员工穿裤衩上班,由于这样程序员能够快乐编程,可是用了你这款工具,程序员只能穿西服编码,大大下降宝宝们的编程效率,可恶可恶。
因而,JSHint
就出现啦。
JSHint
是JSLint
的继承者,它继承JSLint
拥有的规则,可是它容许经过配置文件来配置这些规则。
可是吧,还不够完全,虽然他容许我配置规则,可是不容许我自定义规则。
就好比,原先在JSLint
中,有这样一条规则:"禁止员工穿裤衩上班",
如今JSHint中将这条规则转化为"[禁止]员工穿裤衩上班",同时容许你在配置文件配置方框号中的内容,并且只能配置为[容许]和[禁止]
可是假如我想制定一条规则是"[禁止]员工穿拖鞋上班",JSHint
就不支持啦,因此仍是有点不尽兴。
不过,什么事情都难不倒的程序员,JSCS
如约而至。
JSCS
自己超过90条的规则,可是任然容许制定新的规则,好比"[禁止]员工穿拖鞋上班",嗯,忽然以为好知足。
但...JSCS
仅仅支持代码风格检查,不能检查编写错误问题,为啥呢,我也不知道,也许做者以为编写检查能够直接交给编译器?
天将降大任于斯人也,吸取前人的经验,弥补前人的不足,ESLint
在众人期待中出现了。
ESLint
支持检查编写错误问题,支持检查代码风格问题,支持制定自定义规则,支持经过配置文件修改预约义和自定义规则。
完美,终于能够愉快的生活啦,哈哈哈哈...
ESLint
功能丰富,除了上面说的这些基础功能,还有不少不少,并且前端开发链条上的其余插件也愿意和ESLint
配合。总之,ESLint
出现坑,有人会填,其余的出现坑,只能本身跳进去填,因此,听从你心里的选择吧。