首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有没有JSLint的离线版本?

有没有JSLint的离线版本?
EN

Stack Overflow用户
提问于 2008-10-22 18:32:20
回答 16查看 11.4K关注 0票数 29

我想在不访问JSLint网站的情况下检查我的JavaScript文件。

此工具是否有适用于Windows的桌面版本?

EN

回答 16

Stack Overflow用户

回答已采纳

发布于 2008-10-22 18:39:39

来自http://www.jslint.com/lint.html

分析是由计算机上运行的脚本完成的。您的脚本不会通过网络发送。

它也可以作为Konfabulator widget使用。您可以通过将文件拖放到小部件上来检查文件。您可以通过双击小部件来重新检查该文件。

它还提供WSH Command Line版本。

它还提供Rhino Command Line版本。

或者,由于JSLint是在浏览器中运行的JavaScript程序-您可以抓取脚本并在本地运行它。

票数 13
EN

Stack Overflow用户

发布于 2008-12-19 17:26:20

你也可以在你的机器上使用JavaScript Lint,

从这里得到它

JavaScript Lint

上面的站点上有关于如何将其集成到许多编辑器/IDE中的说明。我在UltraEdit中使用它,它工作得很好。

来自上面的站点

您可以通过以下几种方式运行JavaScript Lint:

您可以将其集成到您的集成开发环境中,例如Visual Studio、SciTE或任何其他支持外部工具的集成开发环境。当IDE Lint发现错误时,您的JavaScript会将您直接带到包含错误的行。

您可以通过Windows资源管理器运行它,这是Windows程序员可能更喜欢的。

您可以使用命令行来集成到您的构建系统中,或者您可能是一名Linux程序员,只是更喜欢使用命令行!

票数 9
EN

Stack Overflow用户

发布于 2010-03-18 06:09:02

对这个老问题的补充: jslint.js的WScript版本生成的错误消息与来自任何编译器的错误消息非常不同。

如果希望它们相似,并且希望能够在命令行中指定.js文件的名称,而不是使用标准输入读取文件,请执行以下操作:

下载jslint.js, the WScript version

编辑jslint.js文件。滚动到底部,找到以下内容:

代码语言:javascript
运行
复制
 (function(){if(!JSLINT(WScript.StdIn.ReadAll(),.....

将其(以及随后的所有内容)替换为以下内容:

代码语言:javascript
运行
复制
(function(){
    var filename = "stdin";
    var content= "";
    if (WScript.Arguments.length > 0){
        filename = WScript.Arguments(0);
        var fso = new ActiveXObject("Scripting.FileSystemObject");
        //var file = fso.GetFile(filename);
        var fs = fso.OpenTextFile(filename, 1);
        content = fs.ReadAll();
        fs.Close();
        fso = null;
        fs = null;
    } else {
        content = WScript.StdIn.ReadAll();
    }
    if(!JSLINT(content,{passfail:false})){
        WScript.StdErr.WriteLine("JSLINT");
        for (var i=0; i<JSLINT.errors.length; i++) {
            // sample error msg:
            //  sprintf.js(53,42) JSLINT: Use the array literal notation [].
            var e=JSLINT.errors[i];
            if (e !== null){
                var line = (typeof e.line == "undefined")?'0':e.line;
                WScript.StdErr.WriteLine(filename + '(' +line+','+e.character+') JSLINT: '+e.reason);
                WScript.StdErr.WriteLine('    ' + (e.evidence||'').replace(/^\s*(\S*(\s+\S+)*)\s*$/,"$1"));
            }
        }}}());

此更改做了两件事:

  1. 允许您在命令行上指定要运行lint的文件,而不是指定为标准输入。如果根本没有指定文件,Stdin仍然有效。
  2. 以更类似于大多数C/C++编译器的格式发出错误消息。

然后,在cmd.exe提示符下,您可以执行以下操作:

代码语言:javascript
运行
复制
cscript.exe  jslint.js   MyJavascriptModule.js 

您将得到如下错误消息:

代码语言:javascript
运行
复制
JSLINT
MyJavascriptModule.js(7,17) JSLINT: 'xml' is already defined.
    var xml = new ActiveXObject("Microsoft.XMLHTTP");
MyJavascriptModule.js(10,5) JSLINT: 'xml' used out of scope.
    xml.open("GET", url, true);
MyJavascriptModule.js(11,9) JSLINT: 'xml' used out of scope.
    if (xml.overrideMimeType) {
MyJavascriptModule.js(12,9) JSLINT: 'xml' used out of scope.
    xml.overrideMimeType('text/plain; charset=x-user-defined');
MyJavascriptModule.js(14,9) JSLINT: 'xml' used out of scope.
    xml.setRequestHeader('Accept-Charset', 'x-user-defined');
MyJavascriptModule.js(17,5) JSLINT: 'xml' used out of scope.
    xml.onreadystatechange = function() {
MyJavascriptModule.js(28,5) JSLINT: 'xml' used out of scope.
    xml.send('');
MyJavascriptModule.js(34,16) JSLINT: Expected '{' and instead saw 'url'.
    if (proxy) url = proxy + '?url=' + encodeURIComponent(url);
MyJavascriptModule.js(51,16) JSLINT: Expected '{' and instead saw 'url'.
    if (proxy) url = proxy + '?url=' + encodeURIComponent(url);
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/227022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档