JavaScript 检查(Linting)工具的优缺点比较
概述
四种工具用基本相同的方式工作。他们有一组规则用于分析和报告 JavaScript 文件中的问题。他们可以通过 npm 安装。他们都可以通过命令行使用,作为诸如 Grunt 之类的工具的插件使用,或者被集成到编辑器中。他们都支持使用注释进行配置。
上面说的都是相似之处。每个工具都有各自的优点和缺点 —— 只是有些工具比其他工具有更多的优点
JSLint
优点
- 参数配置完成,可以直接使用(如果您赞同其执行规则的话)
缺点
- JSLint 没有配置文件,如果想改变参数设置,那就存在问题
- 有限的配置选项,许多规则不能禁掉
- 无法添加自定义规则
- 没有规则文档
- 很难弄清楚哪个规则引起的错误
JSHint
优点
- 大多是设置可以配置
- 支持配置文件,在大项目中容易使用
- 已经支持许多类库,像jQuery、QUnit、NodeJS、Mocha等
- 支持基本的ES6
缺点
- 很难知道哪个规则导致错误
- 有两种类型的选项 :强制选项和松散选项。使得配置有些混乱
- 不支持自定义规则
JSCS
优点*
- 支持自定义报告,更容易与其他工具集成
- 如果你遵循一种可用的编码风格,预设和现成的配置文件可以使设置变得容易
- 在报告中存在标记包含规则名字,所以很容易找出哪个规则导致哪个错误
- 可以使用自定义插件来扩展
缺点
- 仅检查编码风格的违例。JSCS 不能检查潜在存在的 bug ,比如未使用的变量,或者偶然的全局变量等等。
- 四个工具中最慢,但是在使用中不是一个问题
ESLint
优点
- 灵活:任何规则都可以开启或关闭,并且有些规则有些额外配置项
- 很容易扩展,并有许多可用的插件
- 易于理解的输出
- 包含了在其他检查器中不可用的规则,使得 ESLint 在错误检查上更有用
- 支持 ES6 ,唯一支持 JSX 的工具
- 支持自定义报告
缺点
- 需要一些配置
- 速度慢,但不是主要问题
作者推荐
在这4个工具中,我的选择是 ESLint 。JSHint 是严格和不可配置的,而 JSHint 缺少扩展机制。 如果仅仅用于编码风格检查,JSCS 是一个不错的选择,但是 ESLint 不仅可以进行代码风格的检查,而且可以检查代码中的 bug 和其他问题。
如果使用ES6(或 ES2015 ,因为他们似乎正在调用它),ESLint 也是明智的选择。在上面提到的工具中,ESLint 对 ES6 支持的最广泛
JSHint 是第二选择。如果不需要 ESLint 的高级功能,JSHint 会在正确配置后捕获大量问题。JSCS 拥有大量的可用规则,如果你不需要除了编码风格检查(缩进,大括号等)以外的其他检查,它将是一个最好的选择。
我非常犹豫去推荐 JSLint 。其他工具做同样地事情,但是不强制用户遵守这些规则。唯一的例外是你碰巧同意那些强制规则,在这种情况下,那是值得深入研究的。
检验工具是解决问题的好方法,但是它只能发现其规则匹配的许多错误。对于一个更安全的 bug 自动捕获来说,我建议使用单元测试。代码复查也可以用于此目的。
原文地址:https://www.css88.com/archives/7593