在 JSHint 中开启循环复杂度
Turn on cyclmatic complexity in JSHint
我正在使用 JSHint,我想打开圈复杂度。
从JsHint homepage and JsHint Docs开始,JsHint好像可以测到。
但是在我 运行 这个命令 jshint test.js
测试下面的文件后
//test.js
$(document).ready(function() {
$("p").click(function() {
$(this).hide();
var x = 5
});
function main() {
return 'Hello, World!';
}
});
我只收到 linting 报告(test.js:第 4 行,第 14 列,缺少分号。,...)
我该怎么做?
从 API docs 看来,您可以在 linting 之后调用 JSHINT.data()
来获取指标,其中包括测量复杂性:
JSHINT.data()
Generate a report containing details about the most recent invocation of JSHINT.
For example, the following code:
var source = [
'function goo() {}',
'foo = 3;'
];
var options = {
undef: true
};
var predef = {
foo: false
};
JSHINT(source, options, predef);
console.log(JSHINT.data());
...will produce the following output:
{
functions: [
{
name: 'goo',
// ...
metrics: {
complexity: 1,
parameters: 0,
statements: 0
}
// ...
这将显示测得的复杂度。
请注意,这与 maxcomplexity 规则完全不同 - 如果启用,并且您将其设置得足够低,并且您的函数足够复杂,您的 linting 输出将包含一个错误。
我正在使用 JSHint,我想打开圈复杂度。
从JsHint homepage and JsHint Docs开始,JsHint好像可以测到。
但是在我 运行 这个命令 jshint test.js
测试下面的文件后
//test.js
$(document).ready(function() {
$("p").click(function() {
$(this).hide();
var x = 5
});
function main() {
return 'Hello, World!';
}
});
我只收到 linting 报告(test.js:第 4 行,第 14 列,缺少分号。,...)
我该怎么做?
从 API docs 看来,您可以在 linting 之后调用 JSHINT.data()
来获取指标,其中包括测量复杂性:
JSHINT.data()
Generate a report containing details about the most recent invocation of JSHINT.
For example, the following code:
var source = [
'function goo() {}',
'foo = 3;'
];
var options = {
undef: true
};
var predef = {
foo: false
};
JSHINT(source, options, predef);
console.log(JSHINT.data());
...will produce the following output:
{
functions: [
{
name: 'goo',
// ...
metrics: {
complexity: 1,
parameters: 0,
statements: 0
}
// ...
这将显示测得的复杂度。
请注意,这与 maxcomplexity 规则完全不同 - 如果启用,并且您将其设置得足够低,并且您的函数足够复杂,您的 linting 输出将包含一个错误。