javascript - 如何使用 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 获得与上述类似的任何输出。翻阅源代码似乎完全有可能,但我不知道是否有比破解源代码更简单的方法。
解决方案
在翻阅源代码并查看在线文档后,您似乎可以编写自己的报告器,如下所示。但是,它没有提到您还可以添加其他参数以在回调中获取其他信息,如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);
});
});
}
};
推荐阅读
- mysql - 书中的 JOIN 语句等价似乎不正确?
- swift - 如何在 applicationWillEnterForeground(_:) 中调用 LaunchScreen
- laravel - 从域访问时未发送 Sanctum CSRF Cookie
- async-await - JS:带有 await 语句的异步函数导致未定义的承诺。我究竟做错了什么?简单的例子
- python - Python中是否有特定于属性的方法/接口?
- php - Laravel 工匠版
- typescript - 组合来自多个 RxJS 可观察对象的数据的更好方法
- amazon-web-services - Backblaze S3 兼容 API - 预签名 URL - 节点 AWS 开发工具包不起作用
- python - 如何在不出现 415 错误的情况下向 API 发送 PUT 请求
- rust - 如果 main 返回 Err,Rust 程序会返回什么退出代码