JSLint和JSHint及ESLint的对比是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
创新互联服务项目包括浚县网站建设、浚县网站制作、浚县网页制作以及浚县网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,浚县网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到浚县省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
最近在用React
写项目,但是我的Vim配置之前并没有配置对JSX
和ES6
的支持,然后看着那堆报错各种不爽了,于是还是要继续折腾,顺便也增加了点知识,记录一下。
JavaScript已经发展蛮长时间了,对应的Lint工具也是层出不穷,下面介绍一下比较主流的几个Lint工具(其实是我用过的几个XD)
JSLint是由Douglas Crockford开发的,可能是最早的JavaScript Lint工具了吧,它的名字来源于著名的C
语言工具Lint
。老道把他认为的非Good Parts
的部分都报了warning,而且在它的文档中也提到了你应该欣然接受所有的JSLint
的建议。最近看了下,老道还在持续更新着这个项目,而且官网上也有着一个在线的体验工具,可以尝试一下。对了,如果想要使用这个工具,建议看看老道在YouTube上关于JavaScript编程风格的视频,讲的还是很幽默的。
JSHint是由Anton Kovalyov基于JSLint
的代码实现的开源项目,由于JSLint时期大多数人都在受JSLint压迫,JSHint相比较之下,更友好,也更容易配置,所以很快就发展了起来,也得到了众多IDE和编辑器的支持。但是,由于它是基于JSLint开发的,自然原有的一些问题它也继承下来了,比如不易扩展,不容易直接根据报错定位到具体的规则配置等,虽然之前好像是有过相关的讨论,但是现在仍然没有什么好的解决办法。好在它发展的不错,很多时候遇到的问题都可以在网上找到相关的解决方案,而且文档也是非常不错的。
ESLint是由Nicholas C. Zakas在2013年开始开发的,它的初衷就是为了能让开发者能自定义自己的linting rules
,而且它提供了一套相当完善的插件机制,可以自由的扩展,动态加载配置规则,同时可以方便的根据报错定位到具体的规则配置。而且我比较喜欢它的一点是文档非常详细,可能这也是灵活所必须的吧。在这里还要提一点,ESLint
最初并不是为了造一个重复的轮子,而是作者在实际使用中的需求没有能得到JSHint团队的回应,所以他就结合当时的JSHint
和另一个代码风格的检查工具JSCS
写出来了现在具备代码风格检查,自定义插件扩展功能的ESLint
了。
这三个工具各有特色,我只是做一下对比,选择的话,看个人需求就好了。
配置是老道已经定好的,开箱即用。
有限的配置选项,很多规则不能禁用
规范严格,凡是不符合老道所认为的好的风格的,都会有警告(这一项就看你是否完全认同老道了)
扩展性差
无法根据错误定位到对应的规则
有了很多参数可以配置
支持配置文件,方便使用
支持了一些常用类库
支持了基本的ES6
不支持自定义规则
无法根据错误定位到对应的规则
默认规则里面包含了JSLint
和JSHint
的规则,易于迁移(这肯定是故意的XD)
可配置为警告
和错误
两个等级,或者直接禁用掉
支持插件扩展
可以自定义规则
可以根据错误定位到对应的规则
支持ES6
唯一一个支持JSX
的工具
需要进行一些自定义配置(因为太灵活了嘛,不过文档是很详细的)
慢(它比其他两个都要慢)
我们都使用Syntastic
来配置
有一个jslint.vim当然版本太老了。。我们不用这种方式做。
安装jslint
sudo npm install jslint -g
在vimrc
中添加如下配置
let g:syntastic_javascript_checkers = ['jslint']
安装jshint
sudo npm install jshint -g
在vimrc
中添加如下配置
let g:syntastic_javascript_checkers = ['jshint']
也可以使用独立插件jshint.vim
sudo npm install eslint -g
在vimrc
中添加如下配置
let g:syntastic_javascript_checkers = ['eslint']
这里有个很重要的问题,记得要在添加一份配置文件,在官网或者在我vim配置的仓库可以找到
关于JSLint和JSHint及ESLint的对比是什么问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。