是否有适用于Windows的JSLint的脱机版本?

时间:2008-10-22 18:32:20

标签: javascript jslint

我想查看我的JavaScript文件而无需访问JSLint网站 是否有适用于Windows的此工具的桌面版本?

16 个答案:

答案 0 :(得分:13)

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

  

分析由脚本完成   在你的机器上运行。你的脚本   不是通过网络发送的。

     

它也可以Konfabulator widget的形式提供。你可以检查一个文件   拖动它并放在它上面   小部件。您可以通过重新检查文件   双击小部件。

     

它也有WSH Command Line版本。

     

它也有Rhino Command Line版本。

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

答案 1 :(得分:9)

您也可以在机器上使用JavaScript Lint,
从这里得到它 JavaScript Lint

有关于如何将其集成到上述站点上的许多编辑器/ IDE中的说明。 我在UltraEdit中使用它并且效果很好。

来自上述网站

  
    

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

         

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

         

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

         

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

  

答案 2 :(得分:4)

这个旧问题的附录:jslint.js的WScript版本产生的错误消息与来自任何编译器的错误消息非常不同。

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

下载jslint.js, the WScript version

编辑jslint.js文件。滚动到底部找到:

 (function(){if(!JSLINT(WScript.StdIn.ReadAll(),.....

用这个替换它(及其后面的所有内容):

(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。如果根本没有指定文件,Stdin仍然有效。
  2. 以与大多数C / C ++编译器更相似的格式发出错误消息。

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

    cscript.exe  jslint.js   MyJavascriptModule.js 
    

    您将收到如下错误消息:

    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);
    

答案 3 :(得分:4)

我知道这是一个旧的,但是没有人提到JSLint是开源的并且可以在github上获得。 https://github.com/douglascrockford/JSLint

您可以使用包含的HTML页面,或使用以下方法创建自己的界面:

var options = {
    browser : true,
    plusplus : true,
    unparam : true,
    maxlen : 120,
    indent : 4 // etc
};
if (JSLINT(myCode, options)) {
    document.write('Passed!');
} else {
    document.write('Failed! :(');
}
document.write('<ul>');
for (i = 0; i < JSLINT.errors.length; i++) {
    document.write('<li><b>' + JSLINT.errors[i].line + ':</b> ' + JSLINT.errors[i].reason + '</li>');
}
document.write('</ul>');

答案 4 :(得分:3)

您可以将页面保存到硬盘吗?

答案 5 :(得分:1)

只需将html页面保存到硬盘驱动器,然后将其使用的.js文件下载到同一位置即可。这就是JavaScript的魅力。

答案 6 :(得分:1)

jslint CLI options

以上的更多答案(并非全部严格针对Windows)

答案 7 :(得分:1)

您可以将此人制作的工具集成到Visual Studio中。

http://jason.diamond.name/weblog/2008/08/09/verifying-javascript-with-jslint-and-visual-studio/#content

只需停用您不需要的选项。

答案 8 :(得分:1)

可以找到Visual Studio插件here

这有点粗糙,但完成了工作。

我刚加入该项目,并将在接下来的几个月内更新。

答案 9 :(得分:1)

我们发现JSLint4Java非常好。如果您使用Ant来构建项目,那么它提供的Ant任务特别有用。

答案 10 :(得分:1)

这是一个不错的extension for Visual Studio 2010

答案 11 :(得分:1)

如果你使用notepad ++,那么你就有了一个JSLint插件。

JSLint Plugin for Notepad++

你可以找到它并从notepad ++的插件管理器安装。

答案 12 :(得分:0)

大多数浏览器都能够保存“整个”页面,这意味着所有外部文件(如StyleSheets,JavaScripts等)也会下载并正确链接到HTML文档(通常放在HTML文件旁边的文件夹中)。因此,绝对可以离线使用该工具。

答案 13 :(得分:0)

MiniME是JSLint的替代品,它在Windows下运行本机,您可能会发现它很有用。

完全披露,我支持这个:http://www.toptensoftware.com/minime进行缩小,混淆和一套合理的lint样式检查。

答案 14 :(得分:0)

使用Node.js运行的JSLint Reporter

易于更新。

  1. 安装Node.js

  2. jslint-reporter安装到:C:\jslint-reporter

  3. 下载JSLint:

    C:\jslint-reporter>node wrapper.js --upgrade
    
  4. 测试:

    C:\Temp>node C:\jslint-reporter\wrapper.js missing_semicolon.js
    missing_semicolon.js:1:10:Expected ';' and instead saw 'console'.
    missing_semicolon.js:2:1:'console' was used before it was defined.
    
  5. JSLint Node.js包

    易于设置,但您依靠包作者来保持包含的JSLint最新:

    1. 安装Node.js

    2. 使用 npm, Node.js的包管理器,安装JSLint:

      C:\>npm -g install jslint
      
    3. 测试:

      C:\Temp>jslint missing_semicolon.js
      
      missing_semicolon.js
       #1 Expected ';' and instead saw 'console'.
          var x = 5 // Line 1, Pos 10
      
    4. 其他解决方案

      要运行JSLint,您还可以使用Rhino或任何其他有效的JavaScript实现 当然,在Windows上。

答案 15 :(得分:0)

CSE HTML Validator包含JSLint并在Windows桌面计算机上运行。