温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

JSLint和JSHint及ESLint的对比是什么

发布时间:2021-10-21 14:03:39 来源:亿速云 阅读:194 作者:柒染 栏目:大数据

JSLint和JSHint及ESLint的对比是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

最近在用React写项目,但是我的Vim配置之前并没有配置对JSXES6的支持,然后看着那堆报错各种不爽了,于是还是要继续折腾,顺便也增加了点知识,记录一下。

主流的JS Lint工具及介绍

JavaScript已经发展蛮长时间了,对应的Lint工具也是层出不穷,下面介绍一下比较主流的几个Lint工具(其实是我用过的几个XD)

JSLint

JSLint是由Douglas Crockford开发的,可能是最早的JavaScript Lint工具了吧,它的名字来源于著名的C语言工具Lint。老道把他认为的非Good Parts的部分都报了warning,而且在它的文档中也提到了你应该欣然接受所有的JSLint的建议。最近看了下,老道还在持续更新着这个项目,而且官网上也有着一个在线的体验工具,可以尝试一下。对了,如果想要使用这个工具,建议看看老道在YouTube上关于JavaScript编程风格的视频,讲的还是很幽默的。

JSHint

JSHint是由Anton Kovalyov基于JSLint的代码实现的开源项目,由于JSLint时期大多数人都在受JSLint压迫,JSHint相比较之下,更友好,也更容易配置,所以很快就发展了起来,也得到了众多IDE和编辑器的支持。但是,由于它是基于JSLint开发的,自然原有的一些问题它也继承下来了,比如不易扩展,不容易直接根据报错定位到具体的规则配置等,虽然之前好像是有过相关的讨论,但是现在仍然没有什么好的解决办法。好在它发展的不错,很多时候遇到的问题都可以在网上找到相关的解决方案,而且文档也是非常不错的。

ESLint

ESLint是由Nicholas C. Zakas在2013年开始开发的,它的初衷就是为了能让开发者能自定义自己的linting rules,而且它提供了一套相当完善的插件机制,可以自由的扩展,动态加载配置规则,同时可以方便的根据报错定位到具体的规则配置。而且我比较喜欢它的一点是文档非常详细,可能这也是灵活所必须的吧。在这里还要提一点,ESLint最初并不是为了造一个重复的轮子,而是作者在实际使用中的需求没有能得到JSHint团队的回应,所以他就结合当时的JSHint和另一个代码风格的检查工具JSCS写出来了现在具备代码风格检查自定义插件扩展功能的ESLint了。

JSLint,JSHint和ESLint的对比

这三个工具各有特色,我只是做一下对比,选择的话,看个人需求就好了。

JSLint

优点

  • 配置是老道已经定好的,开箱即用。

不足

  • 有限的配置选项,很多规则不能禁用

  • 规范严格,凡是不符合老道所认为的好的风格的,都会有警告(这一项就看你是否完全认同老道了)

  • 扩展性差

  • 无法根据错误定位到对应的规则

JSHint

优点

  • 有了很多参数可以配置

  • 支持配置文件,方便使用

  • 支持了一些常用类库

  • 支持了基本的ES6

不足

  • 不支持自定义规则

  • 无法根据错误定位到对应的规则

ESLint

优点

  • 默认规则里面包含了JSLintJSHint的规则,易于迁移(这肯定是故意的XD)

  • 可配置为警告错误两个等级,或者直接禁用掉

  • 支持插件扩展

  • 可以自定义规则

  • 可以根据错误定位到对应的规则

  • 支持ES6

  • 唯一一个支持JSX的工具

不足

  • 需要进行一些自定义配置(因为太灵活了嘛,不过文档是很详细的)

  • (它比其他两个都要慢)

Vim支持

我们都使用Syntastic来配置

JSLint的Vim配置

有一个jslint.vim当然版本太老了。。我们不用这种方式做。

  • 安装jslint

sudo npm install jslint -g
  • vimrc中添加如下配置

    let g:syntastic_javascript_checkers = ['jslint']

JSHint的Vim配置

  • 安装jshint

    sudo npm install jshint -g
  • vimrc中添加如下配置

    let g:syntastic_javascript_checkers = ['jshint']
  • 也可以使用独立插件jshint.vim

ESLint的Vim配置

sudo npm install eslint -g
  • vimrc中添加如下配置

    let g:syntastic_javascript_checkers = ['eslint']

这里有个很重要的问题,记得要在添加一份配置文件,在官网或者在我vim配置的仓库可以找到

关于JSLint和JSHint及ESLint的对比是什么问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI