此页面内容来源于 JSHint 项目仓库。如果您发现错误,请 提交问题 或者(更推荐)提交请求

常见问题

我能否同时使用多个报告器?

可以,您可以通过编写一个新的报告器来组合您想要使用的报告器来实现。

例如,要使用名为 first-reportersecond-reporter 的报告器,请创建一个新的模块来调用它们

var first = require('first-reporter');
var second = require('second-reporter');

exports.reporter = function(results, data, opts) {
  first.reporter(results, data, opts);
  second.reporter(results, data, opts);
};

将它保存到名为 dual-reporter.js 的文件中,并使用以下命令运行 JSHint

$ jshint --reporter ./dual-reporter.js

...您应该会看到 first-reporter 的输出,然后是 second-reporter 的输出。

这种方法特别适合在不同的上下文中使用不同报告器的输出(例如,将一个报告器的输出通过电子邮件发送给开发团队,并将另一个报告器的输出提供给持续集成系统)。您可以在输出流之间输出一个自定义分隔符以进行分离。或者,您可以在报告器调用之间将全局 process.stdout 值替换为另一个流。后一种解决方案有些脆弱,因为它涉及修改全局状态——JSHint 的未来版本可能会公开更安全的机制来执行此操作。

有关创建自己的报告器的更多详细信息,请参阅 JSHint 的“报告器”API 文档

JSHint 跳过了一些未使用的变量

如果您的代码如下所示

function test(a, b, c) {
  return c;
}

那么如果您将 unused 选项设置为 true,JSHint 不会警告您未使用的变量 ab。它认为,如果未使用的参数后面跟着已使用的参数,则这是一个有意识的决定而不是输入错误。如果您希望警告所有未使用的变量,无论它们出现在哪里,请将 unused 选项设置为 strict

/*jshint unused:strict */
function test(a, b, c) {
  return c;
}

// Warning: unused variable 'a'
// Warning: unused variable 'b'

更多信息请参阅:选项/unused