热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

最简便的JavaScript代码检查工具安装方式

前两天发了一篇用mingw编译javascriptv8,讲述我为了在Windows下给javascript做lint检查,费劲去编译google的jav

前两天发了一篇用mingw编译Javascript v8,讲述我为了在Windows下给Javascript做lint检查,费劲去编译google的Javascript引擎v8。但昨天在网上搜来搜去,找到一个非常简单的方案: jshint。它采用了 jsdb 这个解释器程序,jsdb 提供了linux/windows/mac下预编译好的二进制包,而且有读取文件的Javascript api,所以可以用来做lint工具。

安装方法:

  1. 下载 jsdb 可执行程序: http://www.jsdb.org;
  2. 下载 jshint 和jshint.js https://github.com/spytheman/jshint-cli-with-jsdb  ;
  3. 然后就可以调用 jsdb jshint your_file.js 来检查你的Javascript代码文件是否有问题(如果你在Linux下,可以直接给 jshint 添加可执行权限(Linux会根据第一行的声明 #!/usr/bin/env jsdb 自动找 jsdb 来执行自己),然后用jshint your_file.js就可以啦)

不过有个小地方要注意: jshint这个文件里会在当前目录加载jslint.js,找不到就无法完成lint工作,所以你要么将jshint.js放到一个固定的位置,修改一下jshint这个文件,要么将jshint.js的代码干脆拼到jshint的头部去。

这个jsdb是个Javascript解释器,基于mozilla的SpiderMonkey引擎,所以速度不错,也支持新的JS语法。

怎么样,对比一下jslint-v8的安装,够简单吧。

 

不过如果你只在Windows下工作,并且不会用到Javascript 1.5以后的那些语言特性,这里有个更简单的工具:http://www.Javascriptlint.com/ 下载下来,用jsl -conf yourconf.conf your_file.js 就可以了(你可以为每个项目配置一个yourconf.conf,这个工具提供了很多选项)。

 


下面又要发扬我的啰嗦风格了,补充一些不太重要的内容,有兴趣的可以看看:

1. 这个jshint 相对jslint-v8而言,还是有一点功能缺失:这个jshint 并没有像jslint-v8那样,将Douglas Crockford 在jslint.js里面提供的那些配置项暴露出来(比如使用jslint-v8是可以这样 jslint --predef gBrowser,command,util keysnail.js 来检查keysnail的配置文件,而它不会反复抱怨gBrowser,command这些对象未定义。到 Douglas 的在线jslint网站看一下,就知道有很多选项是很有用的,要每次修改jshint还是比较麻烦,最好要能象jslint-v8一样通过命令行传入。

 

2. 为什么Javascript的 lint 工具都这么麻烦呢?Douglas不都已经提供了检查错误的代码,直接使用一下不就行了? 其实主要的问题在于Javascript 解释器,这个语言以前一直不是一个独立的语言,而是一种纯粹的脚本语言,它是生活在一个宿主里面的,自己没有任何I/O接口,加上它主要是用在浏览器里面,安全性要求又比较高,所以各个 Javascript 解释器都没有把I/O等功能放在里面。即使有的 Javascript 解释器有load()函数加载一个js文件,但这里还是有一个问题,怎么读入被检查的代码?

所以jslint-v8和jsdb都是将自己做成了一个Javascript的host,利用引擎的API添加了读文件的JS API(比如jsdb提供的Stream.read()函数)。其实以前网上很多都说用mozilla rhino来做jslint工具(Douglas原本在网站上就提供了一份rhino版的jslint),也是因为它基于JVM已经有了读文件的接口。但Rhino比较慢(主要是启动慢),还得装JRE,我是不太感冒。

转:https://www.cnblogs.com/bamanzi/archive/2011/10/15/Javascript-lint-with-jsdb.html



推荐阅读
  • 本文探讨了使用Python实现监控信息收集的方法,涵盖从基础的日志记录到复杂的系统运维解决方案,旨在帮助开发者和运维人员提升工作效率。 ... [详细]
  • 如何高效学习鸿蒙操作系统:开发者指南
    本文探讨了开发者如何更有效地学习鸿蒙操作系统,提供了来自行业专家的建议,包括系统化学习方法、职业规划建议以及具体的开发技巧。 ... [详细]
  • Java虚拟机及其发展历程
    Java虚拟机(JVM)是每个Java开发者日常工作中不可或缺的一部分,但其背后的运作机制却往往显得神秘莫测。本文将探讨Java及其虚拟机的发展历程,帮助读者深入了解这一关键技术。 ... [详细]
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • V8不仅是一款著名的八缸发动机,广泛应用于道奇Charger、宾利Continental GT和BossHoss摩托车中。自2008年以来,作为Chromium项目的一部分,V8 JavaScript引擎在性能优化和技术创新方面取得了显著进展。该引擎通过先进的编译技术和高效的垃圾回收机制,显著提升了JavaScript的执行效率,为现代Web应用提供了强大的支持。持续的优化和创新使得V8在处理复杂计算和大规模数据时表现更加出色,成为众多开发者和企业的首选。 ... [详细]
  • 本文详细介绍了如何在本地环境中安装配置Frida及其服务器组件,以及如何通过Frida进行基本的应用程序动态分析,包括获取应用版本和加载的类信息。 ... [详细]
  • 本文介绍了两个重要的Node.js库——cache-content-type和mime-types,它们在处理HTTP响应头时非常有用。cache-content-type是基于mime-types构建的,并且实现了缓存机制以提高性能。 ... [详细]
  • 本文详细介绍了在PHP中如何获取和处理HTTP头部信息,包括通过cURL获取请求头信息、使用header函数发送响应头以及获取客户端HTTP头部的方法。同时,还探讨了PHP中$_SERVER变量的使用,以获取客户端和服务器的相关信息。 ... [详细]
  • 本文探讨了在使用 MyBatis 进行批量数据处理时遇到的参数绑定异常问题,并提供了详细的解决方案。 ... [详细]
  • 2023年1月28日网络安全热点
    涵盖最新的网络安全动态,包括OpenSSH和WordPress的安全更新、VirtualBox提权漏洞、以及谷歌推出的新证书验证机制等内容。 ... [详细]
  • Java高级工程师学习路径及面试准备指南
    本文基于一位朋友的PDF面试经验整理,涵盖了Java高级工程师所需掌握的核心知识点,包括数据结构与算法、计算机网络、数据库、操作系统等多个方面,并提供了详细的参考资料和学习建议。 ... [详细]
  • 本文探讨了如何选择一个合适的序列化版本ID(serialVersionUID),包括使用生成器还是简单的整数,以及在不同情况下应如何处理序列化版本ID。 ... [详细]
  • 汇总了2023年7月7日最新的网络安全新闻和技术更新,包括最新的漏洞披露、工具发布及安全事件。 ... [详细]
  • 本文提供了一个详尽的前端开发资源列表,涵盖了从基础入门到高级应用的各个方面,包括HTML5、CSS3、JavaScript框架及库、移动开发、API接口、工具与插件等。 ... [详细]
  • 线程能否先以安全方式获取对象,再进行非安全发布? ... [详细]
author-avatar
Huiying_Liu
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有