代码之家  ›  专栏  ›  技术社区  ›  Robin Rodricks

jslint是否可以脱机使用?

  •  23
  • Robin Rodricks  · 技术社区  · 16 年前

    我想使用 JSLint 但是我对那些可以访问我未过滤的源代码的工具持谨慎态度。是否有脱机版本或其他类似的工具 lint 检查“for javascript offline”时出错?

    编辑: 一个带有图形用户界面,显示了一个错误的样式列表,而不是命令行界面?

    17 回复  |  直到 10 年前
        1
  •  17
  •   Grant Wagner    16 年前

    如果你喜欢 JSLint web interface 你可以做到 File gt; Save Page As... Save as type: Web Page, complete (在火狐浏览器中,在Internet Explorer中执行此操作可能与本地文件夹略有不同)。

    我把名字改成 jslint.htm 在8.3以下,没有空格。

    它在本地保存时似乎可以工作。

    三件事:

    1. 这可能违反了他的许可证,虽然我保留了完整的版权,没有修改他的任何代码,而且从技术上讲,我的网络浏览器已经在我的本地硬盘上创建了他的网站的副本,所以我不确定我是否违反了,我不是律师,所以我会一直这样做,直到收到一封信告诉我停止。
    2. 这个页面可能仍然能够以某种方式将您的代码发送到Internet,尽管可能的可能性非常小。也就是说,WSH或Rhino版本可能比本地保存的网页中的版本(如果你偏执的话)更容易将你提交到互联网上的代码发送出去。
    3. 你将落后于道格拉斯所做的任何错误修复或更新。但是,如果您不定期更新WSH或Rhino版本,同样的事情也适用于它们。
        2
  •  13
  •   Ben Blank Jarret Hardie    14 年前

    jslint可以与wsh或rhino脱机运行:

    http://www.jslint.com/lint.html#try

    编辑 :在被问到这个问题的两年里,JSlint已经放弃了对Rhino和WSH的支持。我鼓励任何有兴趣删除代码的人也查看 JSHint . 它是JSlint的一个分支,其目标是比原来的更灵活,但也恰好支持node、rhino和wsh(当然除了浏览器)。

        3
  •  11
  •   Peter Mortensen icecrime    13 年前

    对:

    基本上,您只需要一个嵌入式JavaScript编译器来运行 jslint.js .

        4
  •  5
  •   rmeador    16 年前

    还有一个叫JS Linter的 JavaScript Lint 具有在线和可下载的命令行版本。我一直使用可下载的版本。我一直在考虑把它作为钩子的一部分集成到SVN中。我比JSlint更喜欢它,因为它有更多的选项,并且似乎可以检测到更多的东西。它可以配置为将某些标识符视为工具箱等的预定义标识符,这允许它检查未定义变量的使用情况,我很肯定JSlint不能这样做。

        5
  •  4
  •   Dominic Mitchell    16 年前

    如果您在Java环境中,您可能会发现我的 jslint4java 工具有用。它有一个命令行变体,也可以集成到一个Ant脚本中。没有图形用户界面,因为我在这些方面很差劲。-)

        6
  •  3
  •   David Snabel-Caunt    16 年前

    YSlow for Firebug 内置此功能

        7
  •  2
  •   Geoffrey Grosenbach    15 年前

    如果您使用textmate,我已经创建了一个运行jslint并在图形窗口中显示输出的包。它都是独立的;使用它不需要安装其他任何设备:

    View JSLint.tmbundle at GitHub

        8
  •  2
  •   Peter Mortensen icecrime    13 年前

    我有一个从命令行运行jslint的工具 SpiderMonkey 壳牌或 Rhino . 它还包括一个插件 Vim 这允许您在编辑文件时按按钮自动突出显示任何问题行:

    http://github.com/hallettj/jslint.vim/

        9
  •  1
  •   Janus Troelsen    13 年前

    试试 Google Closure Linter . 它也比JSlint有更多的特性。

        10
  •  1
  •   Michael Paulukonis    11 年前

    Cory Bennet有 a good post on command-line JSLint . 你的大部分设置将得到 SpiderMonkey 工作。如果你运行的是Linux,那就没那么糟糕了;如果你使用的是Windows和 Cygwin . 这里有一些 more discussion and comparison with Rhino run-times .

    更新:2013.11-如果您在命令行上使用node.js(为什么不这样做?)你两个都能跑 jslint 和新的 eslint . [注:我已经向eshint提交了错误报告和测试代码。]这两个都是 方式 比上面的设置更容易……

        11
  •  0
  •   Travis Beale    16 年前

    因为jslint本身是用javascript编写的,所以您可以通过本地复制HTML和引用的javascript文件来离线运行它。IE7的“另存为…”“网页,完成”功能做得很好。

        12
  •  0
  •   user89021    15 年前

    有一个很棒的雅虎小工具:

    http://ajaxian.com/archives/jslint-multi

    它是开源的,如果你偏执,你可以审计代码。

    alt text http://jslint-multi-widget.googlecode.com/files/jslint_multi_v1_scrshot.png

        13
  •  0
  •   Erik Giberti    14 年前

    我有 JSLint with Node.js validating code 在我的部署脚本中,以确保不会意外地推送可能会破坏我的站点的代码。以后处理客户支持问题可以节省很多时间。

        14
  •  0
  •   Ron DeVera    14 年前

    如果你使用的是textmate, JSLintMate bundle有一个简单的接口,支持jslint和 JSHint ,并允许您以各种方式设置自定义选项(例如,每个项目的配置文件、所有项目的全局选项)。

    JSLintMate screenshots

        15
  •  0
  •   lorefnon    13 年前

    如果已经使用ruby gems,那么可以在一个命令中安装jslint gem: http://rubygems.org/gems/jslint

        16
  •  0
  •   cato_minor    13 年前

    您也可以直接下载源代码,而不是使用浏览器进行下载。这样做的好处是,您可以使用版本控制系统更新它们,并读取注释过的源代码。

    git clone https://github.com/douglascrockford/JSLint.git
    

    这为您提供了HTML和JS源文件,但您不能按原样使用它们。遵循中的生成过程 README . 简而言之,你需要 git clone Douglas Crockford的另外两个JS项目,然后将所有三个Git存储库中的一些JS文件连接(并最小化)到 web_jslint.js .

    我是这样做的,用Yui压缩机:

    cat ../ADsafe/adsafe.js ../JSON-js/json2.js intercept.js jslint.js > /tmp/web_jslint.uncomp.js
    java -jar ../../yuicompressor-2.4.7.jar /tmp/web_jslint.uncomp.js > web_jslint.js
    

    然后打开 jslint.html 使用您的浏览器。

        17
  •  0
  •   ruffin    10 年前

    很容易在jslint.com上重新创建crockford的内容。 JSLint.com's online version of the .js 是一个包含一些开销的文件的小型聚集,我不太明白,比如 that ADSAFE stuff . 让我们把它剥离成一个最简单的包装箱。

    为jslint构建自己的HTML包装器:

    下面是一个网页的代码,它将查找jslint.js( 当前可以找到最新版本的jslint in github here as raw text )在同一个目录中,以与jslint.com现在类似的方式发射。

    <html>
        <head>
            <script src="jslint.js"></script>
    
            <script>
                function jslintalizeMe()
                {
                    var i, divOut, errs, errsMsg = "";
    
                    divOut = document.getElementById("errors");
                    divOut.innerHTML = "";
    
                    if (!JSLINT(document.forms[0].elements[0].value))
                    {
                        errs = JSLINT.errors;
                        for (i=0; i < errs.length; i++)
                        {
                            err = errs[i];
                            if (null !== err)
                            {
                                if (undefined !== err.id)
                                {
                                    errsMsg += "Error: " 
                                    + err.code 
                                    + " -- line " 
                                    + err.line 
                                    + " char " 
                                    + err.character + "<br />"
                                    + "    " 
                                    + err.evidence + "<br />"
                                    + "    " +
                                     err.reason + "<br /><br />\n";
                                }
                                else
                                {
                                    errsMsg += err.reason;
                                }
                            }
                        }
                        divOut.innerHTML = errsMsg;
                    }
                }
            </script>
    
        </head>
    
        <body>
    
            <form>
                <textarea rows="24" cols="80"
                    placeholder="// Paste quality code here"></textarea>
                <br />
                <button onclick="jslintalizeMe();return false;">JSLint</button>
            </form>
    
            <div id="errors"></div>
        </body>
    </html>
    

    an old blog post of mine .

    让GUI变得更古板是由众所周知的读者决定的,但是现在这个报告和JSlint站点一样。

    sample JSLint output from wrapper code