在Chrome或Firefox调试从控制台上的.js文件运行的JSLint(Run JSLint o

2019-06-26 21:43发布

是否有可能运行JSLint具有的JSLint后来载入从调试/开发者控制台头在Chrome或Firefox上的一个或多个.js文件?

我想这样做的原因是,我想在打印console.log()的解析JSLintJSON ,它说,在文档:

// You can obtain the parse tree that JSLint constructed while parsing. The
// latest tree is kept in JSLINT.tree. A nice stringication can be produced
// with
//     JSON.stringify(JSLINT.tree, [
//         'string',  'arity', 'name',  'first',
//         'second', 'third', 'block', 'else'
//     ], 4));

Answer 1:

您可以使用下面的语法上的JavaScript代码运行的JSLint:

var code = "var a = 1 + 2;";
JSLINT(code);

你可以打印语法树,你在问题中提到。

现在,在你的情况,你需要阅读的JavaScript文件JavaScript源。 你可以让一个AJAX调用来读取JavaScript文件的源代码到一个变量。 然后对JSLint的通话如上传递变量。 使用jQuery样品会像的下方。

$(function() {
    // Include jslint.js
    $('<script src="http://localhost/yourapp/jslint.js">').appendTo("head");

    // Read JavaScript file contents into 'code'
    $.get('http://localhost/yourapp/somescript.js', function(code) {

        // Run JSLINT over code
            JSLINT(code);

        // Print the parse tree
        console.log(JSON.stringify(JSLINT.tree, [
                    'string',  'arity', 'name',  'first',
                    'second', 'third', 'block', 'else'
                    ], 4));
        });
});

根据您所想要达到的目的,一个独立的JavaScript控制台(如的NodeJS)会比一个浏览器控制台一个更好的选择。 我想存在的节点包的JSLint。 但是,如果你想手动包括它,你可以简单地做如下。

首先,在jslint.js的末尾添加下面一行

exports.JSLINT = JSLINT;

然后写在说mycode.js你的代码。

var fs = require("fs");
var jslint = require("./jslint.js");

fs.readFile("./test.js", function(err, code) {
    var source = code.toString('ascii');    

    jslint.JSLINT(source);

    console.log(JSON.stringify(jslint.JSLINT.tree, [
         'string',  'arity', 'name',  'first',
         'second', 'third', 'block', 'else'
        ], 4));
},"text");

然后从控制台运行您的代码:

node mycode.js


文章来源: Run JSLint on a .js file from debugging console in chrome or firefox