0

JavaScriptをJSHintでリントしていて、このオプションを有効にしています

"asi": true,
"white": true

コード内のセミコロンを避けるため。

ただし、新しい行はブラケットで開始する必要があるため、その行を開く前にセミコロンを配置する必要があります

;(function () {

})

JSHintは私に2つのエラーを与えます:

  • ';'の後にスペースがありません
  • ';'の後にスペースを入れると 私が得る:期待される'('は異なるインデントを持っている

このようにJSHintが幸せであることに気づきました

;
(function () {

})

しかし、私は良い解決策ではないと思います。

JSHintまたはホワイトオプションをオフにせずに、この問題を解決する方法はありますか?

4

1 に答える 1

3

JSHintのレガシーオプションは、ダグラスクロックフォードがオリジナルのJSLintツールでwhite: true推進したコーディングスタイルを適用するために使用されます。セミコロンのないJavaScriptコードは、彼のコーディングスタイルに適合しません。彼のスタイルガイドラインに制限されたくない場合は、を使用しないでください。white: true

このJSHintオプションのリストには、それらが適用するコーディングスタイルをカスタマイズするためのパラメーターは示されていません。

これに対する答えがないことを証明するために、私はJSHintソースで関連するチェックを見つけました。

function nonadjacent(left, right) {
    if (option.white) {
        left = left || token;
        right = right || nexttoken;
        if (left.line === right.line && left.character === right.from) {
            left.from += (left.character - left.from);
            warning("Missing space after '{a}'.",
                    left, left.value);
        }
    }
}

チェックされる唯一の構成オプションはですoption.white。そのため、残念ながら、目的の動作を実現する方法はありません。自分が望むことを正確に実行するツールが本当に必要な場合は、JSHintを簡単にフォークし、別のオプションを追加して、関数でチェックすることができnonadjacentます。

于 2012-07-17T13:57:04.767 に答える