当前位置: 首页 > 科技观察

javascript验证工具对比

时间:2023-03-18 22:42:56 科技观察

在写js代码的时候,一个验证工具可以帮我避免愚蠢的错误。尽管我有多年的经验,但我仍然错误地命名变量,犯语法错误,忘记正确处理错误。一个好的验证工具或验证器可以在我浪费时间,尤其是客户时间之前告诉我这些问题。好的验证工具可以确保项目遵循代码规范。可以使用的js验证器有四种,但是如何选择使用哪一种呢?让我们来看看这四种流行的解决方案:JSLint、JSHint、JSCS、ESLint的特点和优缺点。概述这四种工具的基本工作方式相同。它们都有一套规则供用户分析和报告js文件错误。它们都可以通过npm安装。它们都可以通过命令行作为Grunt插件使用,或者集成到编辑器中。它们都支持使用注解进行配置。但相似之处结束了。每个工具都有自己的优点和缺点——优点是通过比较得出的。JSLintJSLint是其中最古老的工具。DouglasCrockford在2002年根据他的经验开发了这个工具,强制使用js语言的最佳部分。如果您认同这些本质,那么JSLint可以成为一个很好的工具。JSLint的缺点是不能配置和扩展。您根本无法禁用所需的功能,而且许多功能都缺乏文档。官方文档非常不友好,例如缺乏有关如何将其集成到编辑器中的信息。优点参数配置完整,可以直接使用缺点JSLint没有配置文件,如果要更改参数设置,有问题配置选项有限,很多规则无法禁用无法添加个性化规则未记录的规则很难找出由JSHint引起的错误JSHint是作为JSLint的可配置版本开发的。您可以配置每个规则并将其放在一个配置文件中,这可以在大型项目中轻松使用。JSHint对每个规则都有很好的文档,因此您可以确切地知道每个规则的作用。将它集成到编辑器中也很简单。JSHint的一个小缺点是内部的默认配置松散。也就是说,您必须先激活它才能使用它。与ESLint相比,JSHint更难确定用户打开或关闭哪些规则的错误消息。大部分优点是可以配置参数支持配置文件,便于在大型项目中使用已经支持类库,如jQuery、QUnit、NodeJS、Mocha等支持基本的ES6缺点很难知道哪个规则会出错有两种类型的选项:强制选项和松散选项。使配置有些混乱不支持自定义规则JSCSJSCS与其他的不同,因为如果您不给它一个配置文件或告诉它一个配置项,JSCS将不会做任何事情。可以保存他们网站当前的配置项,所以这个问题不大,配置项有很多,比如jQuery代码风格配置项,google配置项。它有90多种不同的规则,并且可以通过插件创建自定义规则。JSCS还支持自定义报告,这使得在与其他工具集成需要特定格式时变得非常容易。JSCS是一个代码风格检查器。这意味着它只匹配代码格式问题,而不匹配潜在的错误、错误。因此,与其他工具相比,它缺乏灵活性,但如果只是强制执行代码风格检查,JSCS也是一个不错的工具。Pros支持自定义报告,更容易与其他工具集成如果您遵循可用的编码风格,配置项和准备好的配置文件使您可以轻松启动报告中有一个包含规则名称的标签,因此很容易指出是哪个rule导致的错误是通过自定义插件扩展的,缺点只是检查代码风格的问题。JSCS不会检查潜在的bug,例如不适用的变量,意外的全局变量等。四个工具中最慢的,但使用ESLint不是问题ESLint是最新的工具。它被设计为易于扩展,具有大量自定义规则,并且易于通过插件安装。它提供准确的输出并包括规则名称,以便您知道是哪个规则导致了错误。ESLint文档有些混乱。规则很容易找到并组织成逻辑组,但配置指南在某些地方变得混乱。但是,它提供了在一个地方编辑集成、插件和示例的链接。优点是灵活:任意一条规则都可以开启和关闭,有些规则还有一些额外的配置。易于扩展,必要时可以使用插件。这很容易理解。输出包括其他检查器中不可用的规则,使ESLint在错误检查中更有用。支持ES6,唯一支持JSX的工具支持自定义报告缺点需要一些配置慢,但不是主要问题我的建议我的选择是ESLint。JSHint是严格不可配置的,JSHint缺少扩展机制。如果仅用于代码风格检查,JSCS是一个不错的选择,但ESLint不仅可以进行代码风格检查,还可以检查代码中的错误和其他问题。如果使用ES6,ESLint也是显而易见的选择。在上面提到的工具中,ESLint对ES6的支持最为广泛。如果您想尝试ESLint,我创建了一个5步快速入门指南。您可以从我的网站下载ESLint5步快速入门指南JSHint是第二种选择。如果您不需要ESLint的高级功能,JSHint在配置后可以捕获需要它的问题。规则多的JSCS如果除了代码风格不做其他检查的话会是一个不错的选择。我很犹豫要不要推荐JSLint。其他工具做同样的事情,但不对用户强制执行这些规则。唯一的例外是,如果您碰巧统一了那些强制执行的规则,那是一个值得深入研究的案例。检查工具是发现问题的一个很好的步骤,但只能看到其规则中的错误。为了进一步自动捕获错误,我建议使用单元测试。代码视图也有助于实现此目的。您和您的团队如何确保代码质量?英文原文:http://www.sitepoint.com/comparison-javascript-linting-tools/