Webhint项目提供了一种用于检查代码的可访问性、性能和安全的开源检查(Linting)工具。在创建Web站点和应用中,有越来越多的细节问题亟待完善。为此,Webhint力图帮助开发人员标记这些细节。
Webhint以命令行接口(CLI)工具和在线扫描器两种形式提供,使用在线扫描器是最快的上手方式。使用在线扫描器需要为其提供一个公开的URL,用于运行报告并洞悉应用的运行情况。
要在开发工作流中使用Webhint,首先需要使用npm安装它:
npm install hint
和许多特性丰富的工具一样,Webhint提供了多种配置选项。最近,项目添加了一个初始化CLI命令,用于简化Webhint配置的创建:
npm create hintrc
在测试应用时,Webhint提供三种运行环境:jsdom、Chrome和Edge。后两种运行环境使用了Chrome DevTools协议,第一种运行环境使用Node.js环境快速地执行有限次数的检查,无需浏览器的支持。
应用的提示(hint)中可能包含大量需检查的内容。例如,http-compression提示会对应用中的每个资源执行多次请求,指定不同的头部信息,检查和验证GET操作返回的内容。
为支持PWA(渐进增强式Web应用,Progressive Web Apps),Webhint会分析Web Manifest清单文件,检查清单中的设置和准确性。
Webhint工具也可用于验证应用的服务器端是否为某个资源返回了正确的content-type。
最近,该项目添加了CSS解析器,其中包括了对PostCSS抽象语法树(AST)的支持。
解析器还支持TypeScript、Babel和Webpack。与Webpack的集成可用于引导摇树优化(Tree Shaking),进而改进应用的性能。与TypeScript和Babel的集成则通过检查Webhint配置中指定的浏览器列表,判定源码到源码的编译器(Transpiler)应该输出的最优JavaScript版本。
作为JS基金会的托管项目,Webhint使用Apache 2许可开源。Webhint不仅提供了解析器的源代码,而且提供了在线扫描器的源代码。欢迎开发人员通过GitHub提供贡献。