我最近一直在Dojo中进行一些编程,有时会遇到不一致的界面,或者在InternetExplorer中无法加载的界面。有几个人向我指出了一些要进行的优化,但是,作为一个懒惰的程序员,我经常忘记这样做。
幸运的是,有一个适合像我这样懒惰的开发人员的工具:JSLint。Linter通常用于静态开发语言,以便开发人员可以在编译之前验证他们的程序在语法上是否正确;他们基本上确保您不会意外地尝试编译一些一开始就永远不会编译的东西。许多动态语言也有它们;多年来,我已经在vim中绑定了一个键,可以通过PHP的linter运行当前文件。JSLint为JavaScript提供linting功能,以及一些代码分析,以指导您找到一些最佳实践——主要是为了实现跨浏览器兼容性。
JSLint起初看起来像是一个基于Web的工具。然而,事实并非如此;您可以使用许多JavaScript虚拟机。例如,Dojo的源代码构建附带了一个Apache的Rhino版本,这是一个用Java编写的JSVM,而JSLint提供了一个用于Rhino的脚本。
要使用Dojo附带的Rhino在命令行上运行JSLint,您需要下载以下文件:
- jslint.js
将这些文件放在您选择的目录中。然后,创建一个名为jslint
的文件,其中包含以下内容:
#!/bin/sh exec java \ -jar /path/to/dojo/util/shrinksafe/custom_rhino.jar \ /path/to/jslint.js $1
注意:您需要输入正确的Dojo安装路径以及放置jslint.js
文件的位置。
使该文件可执行,并将其放在您的路径中的某个位置。完成后,您可以非常简单地调用它:
$ jslint foo.js
并获得一些不错的输出。我经常做的事情是使用globbing获取树中的所有JS文件,然后将它们单独传递给linter。在zsh中,这可能看起来像这样:
$ for f in *.js;do jslint $f;done
我发现在大多数情况下,按照linter的建议消除了IE中的任何问题,并修复了我在UI中观察到的任何不一致。当然,您的结果可能会有所不同—但如果您是JavaScript开发人员,那么它是您工具箱中非常有用的工具。