特定の行のJSHint警告を抑制する方法はありますか?


264

アプリで(単一の)ケースevalが使用されていましたが、このケースでのみJSHint警告を抑制したいと思います。

それを達成する方法はありますか?設定、魔法のコメント、...?

回答:


465

はい、方法があります。実際には2つ。201310月、 jshintは次のようなコードブロックを無視する方法を追加しました。

// Code here will be linted with JSHint.
/* jshint ignore:start */
// Code here will be ignored by JSHint.
/* jshint ignore:end */
// Code here will be linted with JSHint.

次のような末尾のコメントを含む1行を無視することもできます。

ignoreThis(); // jshint ignore:line

JSHint Sublime Text 2/3プラグインを機能させるには、STパッケージフォルダー内のjshintをアップグレードする必要があります。(私は特にJSHint Gutterでこれに遭遇しました)
Josh

7
特定のエラーのみを無視することは可能ですか?例えば。その特定の行のmaxlenはまだ他のエラーを検出します。
ユルゲンポール

4
のおかげで// jshint ignore:line-うまく動作します;(function() { // jshint ignore:line
katy lavallee

4
「無視」オプションは廃止予定で、EclipseのJSHint統合機能のバージョン0.9.9を使用すると、「悪いオプション」というエラーが表示されます。同じことをする別の方法はありますか?
MidnightJava

2
無視したい行にbad option: 'ignore'特定のオプションを使用して回避しました。私の場合、私はif (x == null)それを単にnull以外の/* jshint eqnull:true */ものにして、ifJSHintを沈黙させるのと同じ関数で使用したいので、無視したいと思いました。
2014

102

「悪」な答えは私にはうまくいきませんでした。代わりに、JSHintsのドキュメントページで推奨されているものを使用しました。スローされる警告がわかっている場合は、コードのブロックに対して警告をオフにすることができます。たとえば、キャメルケース関数を使用しないサードパーティのコードを使用していますが、JSHintルールではそれを要求しているため、警告が表示されました。それを沈黙させるために、私は書きました:

/*jshint -W106 */
save_state(id);
/*jshint +W106 */

15
また、警告番号はどのようにしてわかりますか?
11684

3
jshintを実行して最初にエラーを取得すると、数値が報告されます。
tollmanz 2013年

5
あ、ごめんなさい。コメントを忘れたので、ドキュメントをチェックした後、何かを投稿しませんでした。そうではありません--verbose。警告番号を取得するには、コマンドに追加する必要があります。
11684

9
または、この関連質問への回答は、messages.jsを確認することをお勧めします。私はWebStormを使用しているので、これは非常に役に立ちました。
マイケルジェス

3
すべての警告、エラー、および情報の番号は次の場所にあります:github.com/jshint/jshint/blob/master/src/messages.js
Anderson Arboleya

37

JSHintドキュメントを見るとわかるように、関数ごとまたはファイルごとにオプションを変更できます。あなたのケースでは、ファイルにコメントを置くか、次を使用する関数にローカルにコメントを付けますeval

/*jshint evil:true */

function helloEval(str) {
    /*jshint evil:true */
    eval(str);
}

fwiw、これは2.1.9では機能しませんでしたが、2.1.11にアップグレードすると機能しました
kangax
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.