首页 > 解决方案 > 如何使用 jsHint 提取 CLI 报告中的代码指标?

问题描述

我正在尝试从jshint.comjshint上获取代码指标:

Metrics

There is only one function in this file.

It takes no arguments.

This function contains 2 statements.

Cyclomatic complexity number for this function is 1.

执行cli仅显示 linting 输出missing semicolon等,但不输出任何这些指标。但是,上面的链接似乎对任何粘贴的代码都很好。

如何在所有JS 文件/模块中获得这样的代码报告?从技术上讲,这些信息应该是可用的,但我无法通过 CLI 获得与上述类似的任何输出。翻阅源代码似乎完全有可能,但我不知道是否有比破解源代码更简单的方法。

标签: javascriptjshint

解决方案


在翻阅源代码查看在线文档后,您似乎可以编写自己的报告器,如下所示但是,它没有提到您还可以添加其他参数以在回调中获取其他信息,如cli.js中的代码所示:

结合这两者,您可以编写将指标打印到控制台的自定义报告函数。这是一个从repo中修改的粗略示例,以防有人偶然发现:

module.exports = {
    reporter: function (res,data,options) {
        //console.dir(data,{depth:5}) //To see entire object
        data.forEach(d => {
            d.functions.forEach(f => {
                console.log(d.file, f.name, f.param, f.metrics);
            });
        });
    }
};

推荐阅读