【问题标题】:Is there an offline version of JSLint for Windows?是否有适用于 Windows 的 JSLint 的离线版本?
【发布时间】:2010-09-18 15:03:40
【问题描述】:

我想在不访问JSLint 网站的情况下检查我的 JavaScript 文件。
此工具是否有适用于 Windows 的桌面版本?

【问题讨论】:

    标签: javascript jslint


    【解决方案1】:

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

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

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

    它还提供WSH Command Line 版本。

    它还提供Rhino Command Line 版本。

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

    【讨论】:

    • 是的,但你为什么要这么做。他相当定期更新。哇刚刚看到这个帖子有多老了哈哈..
    • 如果你想在github上使用它
    • @Michael S. Scherotter - Crockford 放弃了 WSH 命令行版本,并对现有 URL 进行了 404 处理!但是有一个版本有效的项目:code.google.com/p/jslint-for-wsh。如果你喜欢 jshint,那里也有一个类似修改的 jshint 版本。还有一个用于 WSH 的 csslint。
    • 我冒昧地将死链接 wsh-link 替换为最新的存档版本(2009 年 12 月)
    • 此信息已过时。几个月以来,WSH 不再受支持。此外,指向 Konfabulator 小部件的链接已失效。我刚刚添加了two possible solutions
    【解决方案2】:

    您也可以在您的机器上使用 JavaScript Lint,
    从这里获取它
    JavaScript Lint

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

    来自上述网站

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

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

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

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

    【讨论】:

      【解决方案3】:

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

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

      下载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 的文件,而不是作为标准输入。如果根本没有指定文件,标准输入仍然有效。
      2. 以更类似于大多数 C/C++ 编译器的格式发出错误消息。

      然后,在 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);
      

      【讨论】:

        【解决方案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>');
        

        【讨论】:

        • 唯一“丢失”的文件(自述文件说了很多,但没有链接到他拥有的复合文件)目前在这里:jslint.com/web_jslint.js
        【解决方案5】:

        你能把页面保存到你的硬盘吗?

        【讨论】:

          【解决方案6】:

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

          【讨论】:

            【解决方案7】:

            只需将 html 页面保存到您的硬盘,然后将其使用的 .js 文件下载到同一位置。这就是 JavaScript 的美妙之处。

            【讨论】:

              【解决方案8】:

              jslint CLI options 上的更多答案(并非全部针对 Windows)

              【讨论】:

                【解决方案9】:

                你可以将这家伙制作的工具集成到 Visual Studio 中。

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

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

                【讨论】:

                  【解决方案10】:

                  可以在 here 找到 Visual Studio 插件。

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

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

                  【讨论】:

                    【解决方案11】:

                    有一个不错的extension for Visual Studio 2010

                    【讨论】:

                      【解决方案12】:

                      如果你使用 notepad++,有一个 JSLint 插件适合你。

                      JSLint Plugin for Notepad++

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

                      【讨论】:

                        【解决方案13】:

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

                        【讨论】:

                          【解决方案14】:

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

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

                          【讨论】:

                            【解决方案15】:

                            使用 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.
                              

                            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
                              

                            其他解决方案

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

                            【讨论】:

                            • 按照JSLint Node.js包的说明,执行命令时没有输出。你展示了一些,所以也许缺少一些配置?
                            • 我在不带参数运行时确实得到了使用输出。所以我决定“摆弄”......在文件名周围添加引号没有帮助(但如果其中有空格,也许会)。使用 .\ 为文件名添加前缀是最终奏效的解决方案。
                            • @Victoria Weird,我不需要在cmd.exe 中添加.`. *Did you run jslint file.js`?*
                            • 我也觉得很奇怪。是的,来自 cmd.exe 的 jslint --options file.js(jsl.cmd 批处理文件,因为我想 --predef 相当数量的项目)。
                            【解决方案16】:

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

                            【讨论】:

                              猜你喜欢
                              • 1970-01-01
                              • 2021-04-17
                              • 1970-01-01
                              • 1970-01-01
                              • 1970-01-01
                              • 1970-01-01
                              • 1970-01-01
                              • 1970-01-01
                              • 1970-01-01
                              相关资源
                              最近更新 更多