开发者的,代码静态质量检查

JavaScript 代码静态质量检查

2015/07/15 · JavaScript
·
质量检查

初稿出处: 百度efe –
我洛桑人(@i作者烟台人)   

自鸿蒙初判,Brendan Eich 10
天捏出 Mocha 之后,即使进化成
EcmaScript,这一个语言如故毁誉相随。那个通过许多横祸,侥幸渡劫成功的苦主标识了累累天坑(见 JavaScript
Garden) ——
当然,你也得以称之 feature。据无义务乱猜,Douglas Crockford
也没少踩坑,于是才有了蝴蝶书《JavaScript: The Good
Parts》,降水天与 JSLint 一起使用会更配哟。

澳门葡京 1

《JavaScript: The Definitive Guide》 V.S. 《JavaScript: The Good Parts》

由来,代码的静态质量检查在品种质量保障方面的第一与要求性已不必置疑。越多的开发者意识到了那或多或少,纷繁在项目营造流程还是源码控制种类中加上静态检查的 hook。本文将依时间各种,选出 JavaScript 史上的最主要多少个 Linter开发者的,代码静态质量检查。 作横向相比较,最后属意何人家,那就分化了。

反省和测试代码来发现其余秘密错误,从而在停放网站上从前及时清除错误是一个要命重大的历程。代码检查的历程也俗称为是Web设计师
和开发者之间的linting。作为一个设计师,如果您想要写出中度优化的代码,那么你一定必要linting工具。有二种档次的代码检查工具。一种是在
执行时间检查代码中的错误和bug。另一种是利用静态代码分析技术并在履行前检查码。后者因为可以节省时间和分神分明更佳。

面向 Web 开发者的 Sublime Text 插件,sublimetext

Package Control

在 Sublime Text 上豪门都用 Package
Control 来管理安装插件,所以它是大家要设置的率先个插件,安装形式见这里。关于
Package Control 的使用办法那里不再赘言。

澳门葡京 2

 

JSLint

JSLint 的名字来自早期用于检查 C 语言代码质量的 Lint,老道把认为非 Good Parts 、有陷阱的部分全部报
warning,而且绝不允许和解(当前版本现已允许一部分的可配备项),固执得令人心痛。

即便那些在 2002 年的 JSLint
代表着红旗的方向,不过前端的上扬雨后春笋,严峻不屈服的 JSLint 初阶阻碍前端的上进
——
例如函数内变量全体聚齐在顶部概念,推荐一个 var 定义五个变量等。最最最重视的是,老道拒绝开源 JSLint(无权利乱猜,或者JSLint 的达成代码违反它和谐创立的条条框框)。

截止
2015年6月9日,JSLint 如故在更新,官网上写着 JSLint edition 2015-06-02 BETA,固执的老到。

实际上,linting可以放在不一致的阶段。假若您喜悦在敲代码的时候测试代码,那么你可以选取lint工具。当然,即使您想在保险文件的时候或执
行的阶段lint代码,那么linting工具也足以如你所愿。那取决个人的挑选。纵然您正在查找用于CSS和JavaScript最好的
linting工具,那么请继续读书。

Package Control

在 Sublime Text 上豪门都用 Package
Control 来管理安装插件,所以它是我们要设置的第二个插件,安装格局见那里。关于
Package Control 的利用方法那里不再赘述。

澳门葡京 3

 

JSHint

 

Linter
是援助你检查代码难点的一类工具,帮您发觉秘密的荒唐或不佳的代码习惯。JSHint 是反省
JavaScript 代码的好工具,援助广大编辑器和 IDE
澳门葡京 4

Sublime 上要使用 JSHint
可以安装:SublimeLinter-JSHint 插件。注意安装这几个插件前须求先安装 SublimeLinter 以及
jshint
命令本身,更加多音讯见 SublimeLinter-JSHint 安装表达。不难地说就是:

  1. 安装 jshint 命令:npm install -g jshint
  2. Package Control 安装:SublimeLinter ,重启 sublime
  3. Package Control 安装:SublimeLinter-jshint

注:JavaScript 有许多 linter
工具,如 JSLint 、JSHint 和 ESLint 。JSLint
是 JavaScript 大师 道格拉斯 Crockford 创作和掩护的。JSHint 是 JSLint 的
fork 版,由社区维护,更可增加、更灵活,使用者也越多,Mozilla、jQuery
都在用 JSHint 。ESLint 是另一位 JavaScript 专家  尼古拉斯 C. Zakas
主导的社区档次。

注:SublimeLinter 是 Sublime 上 linter 类插件的 framework,所以广大
linter 都重视这几个插件。Package Control: Install Package
中输入 SublimeLinter- 会列出大气 SublimeLinter- 先河的 linter
插件,如下图:

澳门葡京 5

JSHint

鉴于 JSLint 的现状,Anton
Kovalyov 以 JSLint 为原本,在社区力量的提携下完结了开源的 JSHint

相较之下,JSHint 更团结,可配置性更高。由于大家受 JSLint 的压迫太久,而且得益于开源的优势,风头很快盖过 JSLint,一时无两,拿到大量IDE/Editor
的支撑。但是成败萧相国,JSHint 的中标源于对 JSLint 的改正,但一样一连了 JSLint 的诸多通病,比如不易扩张,难以依据报错音信一定到实际的平整配置等。固然有尤其的文档表达,不过修复的本钱依然不低,于是应运而生了JSLint
Error
Explanations 那样的网站,针对 JSLint/JSHint/ESLint 报的失实作修复说明—— “啪啪”,那对 JSHint 团队来说同样于打脸。

JSHint 团队也渐渐发现到那一个标题的基本点,2012
年时曾有 讨论 使用 esprima 生成 AST(见 jshint-next,提醒该品种已过期,已
merge 到主项目,但在 2013/5
又从主项目移除,现已难觅芳踪,原因未明),并有专门针对 JSHint 的
warning 作修复的fixmyjs。

1.CSSLint

JSHint

 

Linter
是接济您检查代码难点的一类工具,帮你发觉神秘的错误或不好的代码习惯。JSHint 是检查
JavaScript 代码的好工具,援助广大编辑器和 IDE
澳门葡京 6

Sublime 上要动用 JSHint
可以安装:SublimeLinter-JSHint 插件。注意安装这些插件前须要先安装 SublimeLinter 以及
jshint
命令自身,愈来愈多音讯见 SublimeLinter-JSHint 安装表明。不难地说就是:

注:JavaScript 有众多 linter 工具,如 JSLint 、JSHint 和 ESLint 。JSLint
是 JavaScript 大师 Douglas Crockford 创作和保安的。JSHint 是 JSLint 的
fork 版,由社区体贴,更可增加、更灵敏,使用者也越多,Mozilla、jQuery
都在用 JSHint 。ESLint 是另一位 JavaScript 专家  尼古拉斯 C. Zakas
主导的社区类型。

注:SublimeLinter 是 Sublime 上 linter 类插件的 framework,所以广大
linter 都依靠那些插件。Package Control: Install Package
中输入 SublimeLinter- 会列出大方 SublimeLinter- 开首的 linter
插件,如下图:

澳门葡京 7

JSCS

代码中从未不当还不够,好的代码须求遵守千篇一律的代码风格(代码不仅仅给机器用,照旧给人看不是吧?)。JSCS 是反省代码风格的工具,可以安插很多代码风格规则,例如空格的须求、括号的职分等,还足以一贯利用
 jQuery、谷歌 等代码风格方案。

Sublime
上急需设置 SublimeLinter-JSCS 。这几个插件同样依靠
SublimeLinter 以及 jscs 命令自个儿。不难安装表明如下:

  1. 安装 jscs 命令:npm install jscs -g
  2. Package Control 安装:SublimeLinter ,重启 sublime (即使您还没装
    SublimeLinter 的话,否则请跳过)
  3. Package Control 安装:SublimeLinter-jscs

别的,你仍可以设置一个 JSCS-Formatter 插件,完毕活动代码格式化。

澳门葡京 8

Closure Linter

Closure Linter 属于 Closure 家族成员,源于 2004
年的 Gmail 项目,最初只是内部选取,后来觉得应该 兼济天下,于是在
2007
年后当做 Closure Tools 体系开放给外部使用。Closure Linter 重倘若比照《Google
JavaScript Style
Guide》来作检查与修补。限于 Closure 的家门特征,使用限制并不大。

确实CSSLint会“加害你的情丝”,但作为交流它会“让您的代码革新很多” 。CSSLint近年来领导了CSS linting的商海。它用JavaScript编写,不可是开源的,而且自带多量的安插选项。

JSCS

代码中并未不当还不够,好的代码须求听从千篇一律的代码风格(代码不仅仅给机器用,仍然给人看不是吧?)。JSCS 是检查代码风格的工具,可以安排很多代码风格规则,例如空格的须要、括号的职位等,还足以向来利用
 jQuery、谷歌(Google) 等代码风格方案。

Sublime 上急需设置 SublimeLinter-JSCS 。那个插件同样依靠 SublimeLinter
以及 jscs 命令本人。不难安装表明如下:

其余,你还能安装一个 JSCS-Formatter 插件,完成活动代码格式化。

澳门葡京 9

ColorHighliter

Color
highlighter 插件可以活动展现CSS 或 Sass
中表明的水彩,让您看透。暗中认可配置下,当鼠标移到颜色变量上时背景就会变成评释的颜色。

澳门葡京 10

还可以安装各种颜色呈现形式,默许配置见: ‘Package Settings’ > ‘Color
Highlighter’ > ‘Settings – Default’ 。例如,大家在该插件的 User
设置中做如下设置可以达到下图的显得效果:

 

1
2
3
{
  "ha_style": "filled"
}

澳门葡京 11

Gutter
Color 和 Color
Picker 是此外三个颜色相关的插件。

JSCS

自 Marat Dulin 于 2003.6.17 日黎明(英文名:lí míng)发布第三个本子开端,JSCS 就注意于代码风格层面的反省,这一点从它的名字 JSCS - JavaScript Code Style 中可窥一斑:

JSCS is a code style linter for programmatically enforcing your style
guide. You can configure JSCS for your project in detail using over 90
validation rules, including presets from popular style guides like
jQuery, Airbnb, Google, and more.

再看它的 package.json 中的爱惜包:

可以发现它使用了 esprima 生成 AST,再通过 estraverse 遍历作检讨,由此质量上会逊于 JSLint 与 JSHint,可是带来的入账是不难维护和壮大,相对于质量上的损失,是截然值得的。别的,JSCS 可通过 esprima-harmony-jscs 实现对 ES6 的支撑,并且自带错误修复技术。

JSCS 与 JSHint 份属协作,互相利用对方作本项目的代码检查。

澳门葡京 12

ColorHighliter

Color highlighter 插件可以自行显示 CSS 或 Sass
中宣称的颜料,让您看透。默许配置下,当鼠标移到颜色变量上时背景就会化为声明的水彩。

澳门葡京 13

澳门葡京,还足以设置多样颜色突显格局,暗许配置见: ‘Package Settings’ > ‘Color
Highlighter’ > ‘Settings – Default’ 。例如,大家在该插件的 User
设置中做如下设置可以达标下图的呈现效果:

 

1 2 3 {   "ha_style": "filled" }

澳门葡京 14

Gutter Color 和 Color Picker 是其它三个颜色相关的插件。

AutoFileName

AutoFileName 在您在输入文件名是提供自动提示,裁减人工的输入错误。

澳门葡京 15

ESLint

刚好,同样是发源对 JSLint 与 JSHint 的不满,Nicholas C.
Zakas 也在 JSCS 发表的当月开班造另一个新轮子
——JSCheck(浓浓的山寨感扑面而来有没有),然则几天后即改名为 ESLint ——
再一次注解,好名字根本。

效果方面,ESLint 可以几乎的了然成 JSHint + JSCS,基本上集成了两大基友的优点。ESLint 在初期也是依靠于 esprima生成 AST,后来为增长对 ES6 的支持,换成 esprima 的分支版本 espree。然而,espree 对 ES6 的支撑依旧很单薄,但是好在还有 Babel-ESLint。

2.SublimeLinter CSSLint

AutoFileName

AutoFileName 在你在输入文件名是提供自动指示,减少人工的输入错误。

澳门葡京 16

Autoprefixer

Autoprefixer 插件让帮你活动添加
CSS
厂商前缀,个人利用比较有利。如若是规范的门类,可以动用其余活动营造工具在营造进度中联合达成。

澳门葡京 17

作者:韩国恺。本名目繁多小说以 Addy & Matt
的泛滥成灾视频 Totally Tooling
Tips 的始末为根基重新整理而成,首要介绍部分(前端)开发者喜欢的工具和技艺。

总结

如果您是老道的死忠粉,无条件允许他有关 JavaScript
的方方面面观点,那么 JSLint 是您的不二增选。只要把 老道 换成 Google 成立,JSLint 换成 Closure Linter 同样创设。

只要您有精良的单元测试作后续的材料担保,可能只 care
代码风格方面的难题,那么 JSCS 就完全胜任。

如果你须求不高,更保护开发工具和条件的支撑,还想顺便检查一下 HTML 代码中的 inline script,严重推荐 JSHint。得益于它的高普及度,固然官方文档有隔着靴子挠痒痒的无力感,在社区的支援下也能很快的缓解您的题材。

假如您的需要万分高,为集团制订规范相当详尽,并且不满足于 JSHint 与 JSCS 的结合,不妨尝试 ESLint。严酷的进献出席流程,神速的响应以及丰硕的文档都不过是它诸多亮点中的冰山一角。

你还要检查 CSS 和 HTML,甚至还有 Less
或然只有 fecs 能够挽救你于水火,至于 fecs 是什么,那是另一篇小说的内容了。

CSSLint是一遍这样火速的CSS linting工具,以致于很难找到一个竞争对手可以与之比美。或许那就是为啥SublimeLinter linting框架会把它的CSS linting插件营造在CSSLint上边的缘故。SublimeLinter是一个
SublimeText插件,给用户提供了lint代码(CSS,PHP,Python,Java,Ruby等)的招数。

Autoprefixer

Autoprefixer 插件让帮您活动添加 CSS
厂商前缀,个人使用相比较方便。假使是正统的类型,可以动用其余活动打造工具在打造进度中联合完结。

澳门葡京 18

小编:南韩恺。本种类小说以 Addy & Matt 的不可枚举摄像 Totally Tooling
Tips 的故事情节为根基重新整理而成,首要介绍一些(前端)开发者喜欢的工具和技巧。

Web 开发者的 Sublime Text 插件,sublimetext
Package Control 在 Sublime Text 上大家都用Package
Control来管理安装插件,所以它是大家要设置的首先个…

补充

撰写未完,博客园发现已有近似的可比: A Comparison of JavaScript Linting
Tools,可作参考。

1 赞 1 收藏
评论

澳门葡京 19

澳门葡京 20

3.StyleLint

StyleLint可以协理开发人士防止CSS、SCSS中或其余其他PostCSS可以分析的语法错误。StyleLint测试了跨越一百条规则,你可以拔取你想切换的这些规则(见此举例配置)。

澳门葡京 21

4.W3C CSS Validator

尽管W3C的CSS
Validator日常不被认为是一种linting工具,但它为开发人士提供了一个用W3C官方正式检查CSS代码的很好机会。W3C建立它和谐的证实程序,目的在于提供一个好像于Lint程序检查器针对C语言的工具。

澳门葡京 22

5.Dirty Markup

Dirty
马克up可以清理,格式化以及表明你的HTML、CSS和JavaScript代码。即使您喜爱不难直接的布置性,并期待一个飞速的解决方案,那么选它就对了。当你在编辑器中编辑或涂改代码的时候,Dirty
马克up可以实时抛出错误音讯和通知。

澳门葡京 23

6.JSLint

JSLint最初由DouglasCrockford揭橥于2002年,从那时起就有了发达的生气,因而你可以安全地肯定它是一个既安静又可信的JavaScript
linting工具。

澳门葡京 24

7.JSHint

JSHint是一个社区驱动项目,始于竭力创设一个更可安排,不那么执着的JSLint版本。JSHint允许开发人员配置任何它的linting选项,然后把自定义的布局放到一个单独的文书中,那使得该工具很不难重复使用,因而相当适合大型项目。

澳门葡京 25

8.ESLint

ESLint是JavaScript
linting宏图中近年来的一件大事。之所以受欢迎是因为高度灵活的表征。你不仅可以自定义多量高档的linting规则,将之与持有重大的代码编辑器集成,还足以很不难地由此丰盛分化的插件扩大其功用。

澳门葡京 26

9.JSCS

JSCS,或JavaScript Code
Style,是指向JavaScript的一个可插拔的代码风格linter,用来检查代码格式规则。JSCS的靶子是提供一个用编程格局履行坚守于某一
编码风格向导的一手。即便JSCS不检查bug和谬误,但它依然为众多高科学技术行业的加入者,如谷歌(谷歌(Google))、AirBnB和AngularJS所用,因为它可以帮助开发人士保持一个高度可读又同样的代码库。

澳门葡京 27

10.StandardJS

StandardJS,或JavaScript Standard
Style是一种代码风格linter,有点像JSCS,但分歧是进一步简单和直接。即便您不想花时间在配置上,只想要一个能开箱即用的很快工具以来,那么StandardJS是一个超棒的采用。

澳门葡京 28

译文链接:
英文原文:10 CSS and JavaScript Linting Tools for Code
Optimization

你或许感兴趣的稿子:

  • 您有必不可少知道的10个JavaScript难题
  • Web品质优化系列10个升级JavaScript品质的技巧
  • 极力推荐10个不足实用的JavaScript代码段
  • 10个JavaScript中易犯小错误
  • 分享10个原生JavaScript技巧
  • JavaScript开发人士的10个第一习惯小结
  • 10个在JavaScript开发中常蒙受的BUG

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website