なっく日報

技術やら生活やらのメモ

細かすぎて伝わらないESLintのTIPS

ここ2日ほど、ESLintを使っていて気づいた細かい設定など。

デフォルトの結果だとVimで該当行までジャンプできないのをどうにかしたい

問題

デフォルトの出力が

/private/tmp/hoge/a.js
   2:13  error  "require" is not defined                                no-undef

というフォーマットなので、普段

eslint . | view -

みたいな感じでVimで表示させて、gFで該当行にジャンプとかをしているのができません(a.js:2みたいな形式でないと開けない)

解決策

-f,--formatオプションを利用する。 -f unixを指定すると

/private/tmp/hoge/a.js:2:13: "require" is not defined. [Error/no-undef]

みたいになります。

他に指定できるフォーマットはコチラ↓
http://eslint.org/docs/user-guide/command-line-interface#f-format

warningは表示したくない!

問題

レガシーコードにESLintをかけたところ、errorが大量に表示されたので、とりあえずルールを1個1個error→warningに変更していきました・・・ ががが、warningのメッセージが邪魔すぎる。

解決策

--quietオプションを使う。

warningが出なくなり、errorのメッセージだけ出力されるようになります。

↓公式。
http://eslint.org/docs/user-guide/command-line-interface#quiet

.eslintrcを編集したら挙動が変だ

問題

チェックされるべきルールのチェックが効いていない。

解決策

.eslintrcYAMLで書いてないですか?

とりあえず、YAMLのLinterに書けてみましょう。

npm i -g js-yaml # Syntastic.vimでチェックが効くようになります

結構、YAMLの編集ミスが鬼門で、

comma-spacing': [1, {'before': false, 'after': true}],

みたいにJSON形式の.eslintrcからコピペして消し忘れとかをするとそのルール以下動かなくなったりします。
'とか,とか要注意。

デカい.eslintrcファイルを書くときは実はJSON形式の方がいいんじゃと思ったり(ESLintの場合、JSON形式でもコメントも書けます!)

あわせて読みたい

yukidarake.hateblo.jp

yukidarake.hateblo.jp

yukidarake.hateblo.jp