問題
私の混乱を説明するために、サンプルの JavaScript ファイルを作成しました。
(function() { console.log(true == true); })()
これにより、2 つのエラーが発生するはずです。最初に の==
代わりに を使用し、次に===
セミコロンがありません。ただし、実行すると
var jshint = require('jshint').JSHINT;
jshint('(function() { console.log(true == true); })()');
ノード REPL でオンにすると、予期しないときにエラーが発生します。エラーが発生しないと予想する理由は、JSHint ドキュメントに次のように記載されているためです。
[to jshint] の 2 番目のパラメーターは、JSHINT の動作を制御するオプションのオプション オブジェクトです。ほとんどのオプションはブール値です。これらはすべてオプションであり、デフォルト値は false です。
オプションを定義していないため、これはエラーを生成しないと予想されるため、すべてが false になるはずです。予期しない動作の最後の部分は、オプションを設定しても何も起こらないように見えることです。jshint に対する次の 2 つの呼び出しでも、同じエラーが発生します。
var myFile = '(function() { console.log(true == true); })()';
jshint(myFile, {eqeqeq: false, asi: false});
jshint('/*jshint eqeqeq:false, asi:false */\n' + myFile);
質問
JSHint オプションがどのように機能するのかよくわかりません。ドキュメントを誤解している可能性があります。上記の呼び出しjshint
または私の仮定のどちらが間違っているか、または実際に JSHint に問題があるかどうかを知っていただければ幸いです。