このページのコンテンツは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

...そうすると、second-reporterの出力の後にfirst-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'

詳細については、オプション/未使用を参照してください。