欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JS代码规范工具对比

程序员文章站 2022-03-21 22:17:22
...

JS代码规范工具对比

前言

由于项目开发多成员协作问题,程序员水平参差不急、程序员开发习惯不同,项目的不断迭代会导致代码质量问题、代码维护问题、可读性问题的出现,所以好的校验工具可以确保一个项目遵循代码规范、避免一些常见的隐患出现~

工具列表

* JSLint
* JSHint
* ClosureLinter
* JSCS
* ESLint
* YUI Compressor
* UglifyJS

工具对比

JSLint

JSLint是其中最老的工具。在2002年 Douglas Crockford开发了该工具,根据其经验,强制使用js语言中精粹的部分。如果你同意这些精粹,JSLint能成为一个好的工具。
JSLint的缺点是不能配置和拓展。你根本不能禁掉需要特性,并且很多缺少文档。官方文档非常不友好,例如缺少如何将其集成到编辑的信息。

优点
参数配置完成,可以直接使用

缺点
JSLint不存在配置文件,如果想改变参数设置,那就存在问题
有限的配置选项,许多规则不能禁掉
不能增加个性化规则
没有文档记录规则
很难弄清楚哪个规则引起的错误

JSHint

作为一个可配置的JSLint版本,JSHint被开发出来。你可以配置每个规则,将其放到一个配置文件中,这样在大项目中可以容易使用。JSHint对每个规则有好的文档,所以可以准确知道每个规则的作用。将其集成到编辑器也是简单的。

JSHint的一个小缺点是里面的松散默认配置。也即是你在使其可用之前必须将其启动。和ESLint相比,确定哪个规则用户开启或关闭错误信息,JSHint是更加困难。

优点
大多是参数可以配置
支持配置文件,在大项目中容易使用
已经支持需要类库,像jQuery、QUnit、NodeJS、Mocha等
支持基本的ES6

缺点
难于知道哪个规则产生错误
存在两类选项:强制选项和松散选项。使得配置有些混乱
不支持自定义规则

JSCS

JSCS不同于其他,因为如果不给它一个配置文件或告诉它一个配置项,JSCS不会做任何事情。可以存他们的网站现在配置项,所以这不是个大问题,并且有许多配置项,例如jQuery代码风格配置项、Google配置项。

它有超过90个不同的规则,通过插件可以创建自定义规则。当和其他工具集成需要特定格式时,JSCS也支持自定义报告使得变得非常容易。
JSCS是一个代码风格检查器。这意味着它仅仅匹配代码格式的问题,不匹配潜在的bugs、errors。因此,跟其他工具相比缺少灵活性,但是如果你仅仅强制检查代码风格,JSCS也是一个好的工具。

优点
支持自定义报告,更容易与其他工具集成
如果你遵循一种可用的代码风格,配置项和准备好的配置文件使其容易启动
在报告中存在标记包含规则名字,所以很容易指出哪个规则造成了错误
通过自定义插件进行拓展

缺点
仅仅检查代码风格的问题。JSCS不检查潜在存在的bugs,例如不适用的变量、偶然的全局变量等等
四个工具中最慢,但是在使用中不是一个问题

ESLint

ESLint是最新出来的工具。它被设计的容易拓展、拥有大量的自定义规则、容易的通过插件来安装。它给出准确的输出,而且包括规则名,这样可以知道哪个规则造成了错误。
ESLint文档多少有些混乱。规则容易查找,以及被分为逻辑组,但是配置指南在有些地方容易弄混。然而它可以在一个地方提供链接去编辑集成、插件和样例。

优点
灵活,任何规则都可以开启闭合,以及有些规则有些额外配置
很容易拓展和有需要可用插件
容易理解产出
包含了在其他检查器中不可用的规则,使得ESLint在错误检查上更有用
支持ES6,唯一支持JSX的工具
支持自定义报告

缺点
需要一些配置
速度慢,但不是主要问题

UglifyJS

UglifyJS是基于 NodeJS 的JavaScript语法解析/压缩/格式化工具

官网:http://lisperator.net/uglifyjs/
安装:$ npm install uglify-js -g

使用建议

综上所述,我的建议是ESLint。JSHint是严格和不可配置的,而JSHint缺少拓展机制。JSCS如果仅仅用于代码风格检验是一个好的选择,但是ESLint不仅可以进行代码风格的检验,而且可以检查代码中的bug和其他问题。

如果使用ES6,ESLint也是明显的选择。在上面提到的工具中,ESLint对ES6支持的最广泛。