Is there an offline version of JSLint for Windows?

前端 未结 16 1739
刺人心
刺人心 2021-02-05 03:05

I would like to check my JavaScript files without going to JSLint web site.
Is there a desktop version of this tool for Windows?

16条回答
  •  隐瞒了意图╮
    2021-02-05 03:19

    Addendum to this old question: The WScript version of jslint.js produces error messages that are very much unlike error messages from any compiler.

    If you want them to be similar, and if you want to be able to specify the name of the .js file in the command line, rather than using stdin to read the file, do this:

    Download jslint.js, the WScript version.

    Edit the jslint.js file. Scroll to the bottom and find this:

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

    Replace that (and everything that follows) with this:

    (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

    This change does two things:

    1. allows you to specify the file to run lint on, on the command line, rather than as stdin. Stdin still works if no file is specified at all.
    2. emits the error messages in a format that is more similar to most C/C++ compilers.

    Then, in a cmd.exe prompt, you can do:

    cscript.exe  jslint.js   MyJavascriptModule.js 
    

    and you will get error messages like so:

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

提交回复
热议问题