文章转自:hikejun.com/blog/?p=31
JSLint真是一个强大的工具。之前只是关注它对Javascript的作用方面,其实它同样可以检验HTML代码以及内联的Javascript代码。
JSlint应该说跟WDG HTML Validator(http://htmlhelp.com/tools/validator/)的作用不完全一样。JSLint不仅作语法检查,还做写法上的检查。JSLint的出发点是为了保证代码的品质。
比如在链接里写脚本会报错,如下: [apply] Lint 在行 23 字符 14: Script URL. [apply]
JSlint在语法检查上不会那么严格,但都是最重要的,比如标签是否对称嵌套,标签是否闭合。(详情见http://www.jslint.com/lint.html)
将检验HTML代码这个任务加入到前端开发Build环节中。但在实践中,我遇到了编码问题,如果源文件是UTF-8的就会有麻烦。迫不得以采取一个笨方法,通过ant的copy任务先将源文件备分为ISO-8859-1编码(ant不支持GBK的转换)的文件,再对它进行校验。之后再统一删除备分文件。
关于编码问题,文章下面评论有人写到,不知道是否可行?
slint.js 文件中有个 readFile( 方法(在文件尾部), 给他加个参数: readFile(f,'utf-8') 即可指定文件编码。
还有一篇文章:《用 Ant 构建组件》
它的build.xml如下,有涉及编码的问题,可以看一下:
<?xml version="1.0" encoding="UTF-8"?>
<project name="Smart Queue" default="compress" basedir=".">
<description>Build file for Ant</description>
<property name="src" location="src" />
<property name="build" location="build" />
<property name="lib" location="lib"/>
<property name="inputencoding" value="utf-8"/>
<property name="outputencoding" value="gbk"/>
<target name="init">
<mkdir dir="${build}"/>
</target>
<target name="concat" depends="init">
<concat destfile="${build}/smart-queue.source.js" encoding="${inputencoding}" outputencoding="${outputencoding}">
<filelist dir="${src}" files="intro.js, lang.js, smart-queue.js" />
</concat>
</target>
<target name="compress" depends="concat">
<java jar="${lib}/yuicompressor.jar" fork="true">
<arg line="--type js --charset utf-8 -o ${build}/smart-queue.js ${build}/smart-queue.js"/>
</java>
</target>
<target name="clean">
<delete dir="${build}"/>
</target>
</project>